类模板应该是MFC的原理吧,我看书没看懂,举个简单例子说一下好吗?
PS:我看得懂普通模板。
类模板应该是MFC的原理吧,我看书没看懂,举个简单例子说一下好吗?
PS:我看得懂普通模板。
类模版是标准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编辑过]
类模版是标准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; }
问题在引用里面。请指教,谢谢!
class只是一个关键字,不用class的话还可以用typename;
T是可以随便写的.这里的T是代表一个数据类型.
你可以把T带到每一个有T的地方去看看它的作用.
摸板参数就是类型参数而已嘛,嘿嘿没什么看不懂说,摸板很重要重要的,必须知道才行,STL源码大量使用摸板以达到代入未知类型的目的以避免无限量的重载;还有就是回调原理好象也是基与摸板的,具体的好象是把回调函数类型传递给摸板参数然后把回调函数的名字(标实符)传递给成员函数参数,这样无论你的回调函数是什么类型或什么名字都可以在另一个类中自动调用,好象是这样的。
另:本人新手,成心学习,请各位高手多多关照。
谢谢啊,特别鸣谢VC程序员