gpt4 book ai didi

c++ - 简单的嵌套类

转载 作者:搜寻专家 更新时间:2023-10-31 00:59:46 24 4
gpt4 key购买 nike

我有一个关于 C++ 中的嵌套类的初学者问题。互联网上有很多关于此的信息,但我仍然无法在没有编译错误的情况下使其正常工作。我只是想从 A 类内部的函数返回内部类 B。

template<class T>
class A
{
public:
A();

class B
{
public:
B(){};
};

B getB();
};

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

template<class T>
B A<T>::getB{return B();}

当我这样做时,我收到错误“B 没有命名类型”。我相信解决方案是使用 typedef class A<T>::B b_class; ,但我仍然遇到同样的错误。

谢谢!

最佳答案

您需要更改一些内容:将括号添加到函数定义中,限定外部 B与封闭类( A<T>:: )一起与 typename (必需,因为类型取决于 A 的类型)并将返回更改为实际对象创建。

此处,固定来源中列出:

template<class T>
typename A<T>::B A<T>::getB() {return B();}
//^----------------------------------------------typename
// ^---------------------------------------qualification
// ^---------------------parens
// ^---------c-tor call

关于c++ - 简单的嵌套类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32741396/

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