![](/img/trans.png)
[英]C++ templates pass in a templated class and specify the template type later
[英]C++: Returning a templated object from a class, template type mismatch?
我有以下带有编译器错误的源代码。 很明显,我正在尝试这样做,因此我不会尝试解释,只是说返回的node<N>*
类型不是正确的类型,因为它是模板,因此与session*
对象产生冲突。 继承人的错误。
linked_list_1.cpp|17|error: cannot convert 'node<session*>*' to 'session*' in assignment|
在第17行中,您想将return_node
的返回值分配给session*
,但是return_node
的返回类型是Node<N>*
( Node<Session*>*
)而不是N
( session*
)。 将访问器函数添加到节点类,并使用它来访问数据成员,例如:
session* SESSION_COPY;
SESSION_COPY = LIST->return_node(0)->getData();
因为return_node
函数返回node<N>*
而不是N
或用模板参数替换N
时: return_node
返回node<session*>*
(在头文件中查看),但是您尝试将返回的指针分配给session*
变量。 就像错误消息非常清楚地指出的那样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.