如何从泛型类
template <class A, int B>class Test { //Test 类中一个是A类型,一个是整数型
private:
A first;
int second;
public:
Test();
Test (A,int);
}
}
Cpp 文件:
template <class T,int i> Test<T,i>::Test() {}
template <class A,int i>Test<A,i>::Test(T a, int b):first(a) {second=b;}
//以上文件均可以通过编译,问题在main函数中
在main 函数中,我这样尝试
Test<int, int > T1; //!!!!通不过
Test<int, 4> T2; //!!!!通不过
Test<int, int> T3 (3,4); //!!!!通不过
到底应该怎样声明出来一个对象呢 ????求大神指导
5 个解决方案
#1
你的三个尝试都没给Test提供class A的实际类型。int不是一种类。
#2
模板只能全部放头文件他cpp才能正常用
#3
template <class A, int B>class Test { //Test 类中一个是A类型,一个是整数型
private:
A first;
int second;
public:
Test(){}
Test (A obj):first(obj),second(B){cout<<"second"<<second<<endl;}
};
int main(){
Test<int,4> obj(10);
system("pause");
return 0;
}
#4
请将泛型的声明和定义都放在头文件 现在很少编译器支持分离
#5
template <class A, int B>class Test { //Test 类中一个是A类型,一个是整数型
private:
A first;
int second;
public:
Test(){}
Test (A obj):first(obj),second(B){cout<<"second"<<second<<endl;}
};
int main(){
Test<int,4> obj(10);
system("pause");
return 0;
}
#1
你的三个尝试都没给Test提供class A的实际类型。int不是一种类。
#2
模板只能全部放头文件他cpp才能正常用
#3
template <class A, int B>class Test { //Test 类中一个是A类型,一个是整数型
private:
A first;
int second;
public:
Test(){}
Test (A obj):first(obj),second(B){cout<<"second"<<second<<endl;}
};
int main(){
Test<int,4> obj(10);
system("pause");
return 0;
}
#4
请将泛型的声明和定义都放在头文件 现在很少编译器支持分离
#5
template <class A, int B>class Test { //Test 类中一个是A类型,一个是整数型
private:
A first;
int second;
public:
Test(){}
Test (A obj):first(obj),second(B){cout<<"second"<<second<<endl;}
};
int main(){
Test<int,4> obj(10);
system("pause");
return 0;
}