对于我的家庭作业,我必须创建一个链表,它必须是一个模板类.赋值调用一个名为List的模板类和另一个名为Link的嵌套模板类.
应该在类定义之外定义方法.
我首先创建了一个简单版本的作业并且它正在工作,但我觉得我的设计中存在错误.
#include <iostream>
using namespace std;
template <class T1>
class A
{
public:
template <class T2>
class B;
T1 _a;
};
template <class T1>
template <class T2>
class A<T1>::B
{
public:
T2 _b;
};
int main()
{
A<int> a;
a._a = 5;
A<int>::B<int> b;
b._b = 10;
cout << a._a << " " << b._b << "\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的主要问题是,由于嵌套类的类型相同,正如您从语句中看到的那样A<int>::B<int> b;
,有没有办法让类B自动与A类型相同?我的问题是否有意义?换句话说,我可以A<int>::B b;
自动执行与A相同的类型吗?A<double>::B<int>;
例如,我永远不会有这样的情况.
是的,只是B
不要模板.T1
in B
的定义仍然指的是模板参数A
.
template <class T1>
class A
{
public:
class B;
T1 _a;
}
Run Code Online (Sandbox Code Playgroud)
现在,而不是A<int>::B<int>
,它只是A<int>::B
.
List<int>::Link<double>
无论如何都没有意义,所以它不是一个模板.
归档时间: |
|
查看次数: |
11933 次 |
最近记录: |