C ++:从类中返回模板化对象,模板类型不匹配?

时间:2013-05-02 05:26:13

标签: c++ templates types return mismatch

我有以下带有编译器错误的源代码。很明显我正在尝试这样做,所以我不会尝试解释除了说返回的类型node<N>*不是正确的类型,因为它是一个模板,并且与{{1}创建冲突对象。这是错误。

session*

2 个答案:

答案 0 :(得分:2)

在第17行中,您希望将return_node的返回值分配给session*,但return_node的返回类型为Node<N>*({{1} })而不是Node<Session*>*N)。 向节点类添加一个访问器函数,并使用它来访问数据成员,例如:

session*

答案 1 :(得分:1)

因为return_node函数返回node<N>*而不是N。或者当N替换为模板参数时:return_node返回node<session*>*(查看头文件)但您尝试将返回的指针分配给session*变量。就像错误消息非常清楚所说的那样。