gpt4 book ai didi

c++ - 如何在接收类之外声明嵌套类的方法

转载 作者:行者123 更新时间:2023-11-28 04:33:17 25 4
gpt4 key购买 nike

<分区>

我尝试在我自己的代码中创建一些东西的定义,但编译器无法识别它,所以只是简单的代码,我制作了一个更简短的抽象代码来表示我正在尝试做的事情:

template <class T>
class A
{
public:
A() {}
~A() {}

class B
{
T x;
public:
B() : x(0) {}
~B(){}

void printAB() const;
B& increase();
};
};

现在,我想在类外定义 printABincrease,所以 printAB 不会有任何问题,因为它返回 void,但是当我尝试定义 PrintAB 时,编译器无法识别它并在其下划红色下划线:

这个效果不错:

template <class T>
void A<T>::B::printAB() const
{
cout << "Hello World" << endl;
}

而这个它不认识:

template<class T>
A::B & A<T>::B::increase()
{
x++;
return *this;
}

我也试着做出这样的声明:

template<class T>
A<T>::B & A<T>::B::increase() {
...
}

我必须说它不能像你们建议的那样与 A 一起使用,所以请问还有其他可能有帮助的解决方案吗?

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