| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2149 人关注过本帖
标题:谁来说说类模板?
只看楼主 加入收藏
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
结帖率:66.67%
收藏
 问题点数:0 回复次数:15 
谁来说说类模板?

类模板应该是MFC的原理吧,我看书没看懂,举个简单例子说一下好吗?

PS:我看得懂普通模板。

搜索更多相关主题的帖子: 模板 
2004-09-05 18:41
C++大粉丝
Rank: 4
等 级:贵宾
威 望:10
帖 子:477
专家分:0
注 册:2004-4-23
收藏
得分:0 

类模版是标准C++晚写时候加上的,和MS的MFC没有关系.

// File.h

#include <iostream> #include <string> using namespace std; template<class T> class A { public: A(T value){m_memval = value;} T GetMemVal()const { return m_memval; } private: T m_memval; };

// File.cpp

#include "File.h" int main() { A<string> Inst_a("a string"); string cstr(Inst_a.GetMemVal()); cout << cstr << endl; return 0; }

[此贴子已经被作者于2004-09-06 08:57:26编辑过]


I am a big fan of c plus plus.
2004-09-06 08:43
C++大粉丝
Rank: 4
等 级:贵宾
威 望:10
帖 子:477
专家分:0
注 册:2004-4-23
收藏
得分:0 

其实这是最简单的应用,不是很实用.

比较高级的应用请你看看<C++程序设计新思维>的前几章"代理类"的讲解,很棒的!


I am a big fan of c plus plus.
2004-09-06 09:01
C++大粉丝
Rank: 4
等 级:贵宾
威 望:10
帖 子:477
专家分:0
注 册:2004-4-23
收藏
得分:0 
关于类模板的原理....&lt;C++语言的设计与实现&gt;和&lt;深度探索对象模型&gt;里讲了一些可以参考.

I am a big fan of c plus plus.
2004-09-06 09:10
kuangjingbo
Rank: 1
等 级:新手上路
帖 子:312
专家分:0
注 册:2004-4-24
收藏
得分:0 
我接触的很少,所以没有办法给你讲解了!!

永不放弃!
2004-09-06 11:36
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
以下是引用VC6程序员在2004-09-06 08:43:04的发言:

类模版是标准C++晚写时候加上的,和MS的MFC没有关系.

// File.h

#include <iostream> #include <string> using namespace std; template<class T> //这里一定要class T吗?可以是char T或其它类型吗? class A { public: A(T value){m_memval = value;} T GetMemVal()const { return m_memval; } private: T m_memval; };

// File.cpp

#include "File.h" int main() { A<string> Inst_a("a string"); //string在我的VC6里提示错误,是不是要头文件? string cstr(Inst_a.GetMemVal()); //这两句都没懂,请具体说一下好吗? cout << cstr << endl; return 0; }

问题在引用里面。请指教,谢谢!

2004-09-07 10:49
C++大粉丝
Rank: 4
等 级:贵宾
威 望:10
帖 子:477
专家分:0
注 册:2004-4-23
收藏
得分:0 

class只是一个关键字,不用class的话还可以用typename;

T是可以随便写的.这里的T是代表一个数据类型.

你可以把T带到每一个有T的地方去看看它的作用.


I am a big fan of c plus plus.
2004-09-07 13:44
ffll518
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2004-9-8
收藏
得分:0 

摸板参数就是类型参数而已嘛,嘿嘿没什么看不懂说,摸板很重要重要的,必须知道才行,STL源码大量使用摸板以达到代入未知类型的目的以避免无限量的重载;还有就是回调原理好象也是基与摸板的,具体的好象是把回调函数类型传递给摸板参数然后把回调函数的名字(标实符)传递给成员函数参数,这样无论你的回调函数是什么类型或什么名字都可以在另一个类中自动调用,好象是这样的。

另:本人新手,成心学习,请各位高手多多关照。


2004-09-08 09:41
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

谢谢啊,特别鸣谢VC程序员

2004-09-09 21:48
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
A&lt;string&gt; Inst_a("a string");   //这里的Inst_a("a string");是函数吗?可以是变量吗?
2004-09-09 23:26
快速回复:谁来说说类模板?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025575 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved