首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小程序有关问题

2013-01-01 
小程序问题templateclass Tclass MyList{public:T dataMyList *nextMyListT *next2//它和上面的nex

小程序问题


template<class T>
class MyList
{
public:
T data;
MyList *next;
MyList<T> *next2;//它和上面的next有什么区别
};

[解决办法]
MyList *next;  是定义一个next链表
MyList<T> *next2; 是定义一个模板类的链表,T可以理解为template,即链表中的数据类型可以由用户自己定义
[解决办法]
MyList *next;//next为MyList的一个指针对象。
MyList<T> *next2; //next2表示为类模版指针对象
类模板
 格式:template<typename  形参名,typename  形参名…>    class  类名{}
类模板对象的创建:比有一个模板类A,则使用类模板创建对象的方法为A<int> m;在类A 后面跟上一个<>尖括号
 
并在里面填上相应的类型,这样的话类A 中凡是用到模板形参的地方都会被int 所代替。当类模板有两个模板形参
 时创建对象的方法为A<int, double> m;类型之间用逗号隔开。
[解决办法]
这个实际上是一样的 

按标准应该写成
template<class T>
class MyList
{
public:
    T data;
    MyList<T> *next; //只不过VS编译器做了一些优化,你不写那个<T>也能编译通过
    MyList<T> *next2;
};

热点排行