gpt4 book ai didi

c++ - 需要类型名错误(模板相关错误)

转载 作者:行者123 更新时间:2023-11-28 00:31:26 25 4
gpt4 key购买 nike

我在另一个模板化的类中有一个名为节点的类。类 Node 的一些方法返回 Node 指针。这是我如何实现的摘录

 template <typename T>
class myClass{
....
class Node{
Node* getNodePointer();
...
}
}
...
template <typename T>
myClass<T>::Node* myClass<T>::Node::getNext()
{ return next; }

当我编译上面的代码时,我得到这个错误“myClass.h:138:1: error: need ‘typename’ before ‘myClass::Node’ because ‘myClass’ is a dependent scope”。我该如何解决这个问题?非常感谢

最佳答案

澄清一下,编译器不知道myClass<T>::Node现在或将来都是一种类型。这样想:

template <typename T>
class A
{
public:
typedef T value_type;
};

template <typename T>
class B
{
public:
typename A<T>::value_type x;
};

template <> A<int> { public: static int value_type=10;}

您必须向编译器 promise 该类型是一个类型名。它默认假设它是一个值。

关于c++ - 需要类型名错误(模板相关错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22769084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com