类型为指向另一个类的对象的泛型类 - 不工作 [关闭]
Posted
技术标签:
【中文标题】类型为指向另一个类的对象的泛型类 - 不工作 [关闭]【英文标题】:Generic class with type as pointer to object of another class - NOT WORKING [closed] 【发布时间】:2012-08-21 12:57:03 【问题描述】:为什么这不起作用:
class/struct SomeClass
public:
int SomeValue;
template <class/struct/typename T> class/struct TClass
public:
T TObject;
vector<TClass<SomeClass*>> *vTcSomeClass = new vector<TClass<SomeClass*>>();
这是违法的还是我做错了?
【问题讨论】:
“不工作”是什么意思?你能给我们错误信息吗? 另外,您可以编辑帖子以包含您使用的确切代码吗? 我希望你实际上并没有在你的代码中写class/struct
。如果是这样,请在任何地方使用class
。
如果不使用c++0x,那么>>
会被解释为右移而不是右尖括号。请改写> >
。
@Deukalion 我们不需要阅读更多内容,我们需要一些小代码示例来清楚地说明问题。使用您的struct/class/template
有太多可能出错的可能性。
【参考方案1】:
如果您满足以下条件,您的代码应该可以编译:
在类型中选择类/结构之一,在模板参数中选择类/类型名称之一 在类或结构定义后使用分号 在嵌套模板中写入> >
而不是 >>
(C++11 之前)
【讨论】:
关于你的第一点,我认为你可以在模板中使用struct
可以吗?!我以为你只能使用class
或typename
。关于第三点,只有在没有现代编译器的情况下才需要它。
struct
不能用作模板参数。
我之前有过,只是写了一个例子来说明我的代码看起来像什么来最小化代码。我尝试过使用 structs/class/template,这就是为什么我添加了我希望人们理解的那些。我也把它嵌套了>而不是>,还是不行。
错误 C2664: 'TClass以上是关于类型为指向另一个类的对象的泛型类 - 不工作 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章