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

c++模板解决思路

2013-03-12 
c++模板问题1:c++中模板参数可不可以有如下写法templatecalss T1*class MyClass{}问题2:templateclass

c++模板
问题1:
c++中模板参数可不可以有如下写法

template<calss T1*>
class MyClass
{
};

问题2:
template<class T,int intger=1000>
calss MyClass
{
};
中intger算不算缺省的模板参数

问题3:
template<class T,calss T2=int>
calss MyClass
{
};
中T2算不算缺省的模板参数

c++模板中的 非类型模板参数 算不算模板的缺省参数

[解决办法]
1不行,2,3你说对了。
[解决办法]
1不行,不过有类似的形式做偏特化可以遇到,太久没用++,看看对不对:

[root@vps616 cpp]# ./main 
T
T *
int *
T, integer
T, T1
[root@vps616 cpp]# cat main.cpp 
#include <iostream>

#define DEBUG(cls, info) public: cls() { do { std::cout << info << std::endl; } while(0); }

template <class T>
class MyClass1
{
    DEBUG(MyClass1, "T")
};

template <class T>
class MyClass1<T *>
{
    DEBUG(MyClass1, "T *")
};

template <>
class MyClass1<int *>
{
    DEBUG(MyClass1, "int *")
};

template <class T, int integer = 1000>
class MyClass2
{
    DEBUG(MyClass2, "T, integer")
};

template <class T, class T1 = int>
class MyClass3
{
    DEBUG(MyClass3, "T, T1")
};

int main(int argc, char *const argv[])
{
    MyClass1<int> c1;
    MyClass1<double *> c11;
    MyClass1<int *> c12;
    
    MyClass2<int> c2;
    MyClass3<int> c3;
    return 0;
}

热点排行