gpt4 book ai didi

c++ - 类中的嵌套类或结构

转载 作者:行者123 更新时间:2023-11-30 03:05:50 24 4
gpt4 key购买 nike

代码先行:

//.h文件

class A
{
public:
A();
B makeB(int); //question 1
//protected:
struct B {
int _id;
B(int id);
}
};

//.cpp文件

A::A()
{ cout<<"A ctor\n"; }

B A::makeB(int id) //question 2
{ return B(id); }

2个问题:

1.makeB()函数应该放在struct B的定义之后吗?

2.在 .cpp 文件中,是否应该在每个 B 前加上 A::?

附言:1.如果 makeB 函数不处理 B 实例,而是处理 B 指针或引用,我可以在 makeB 前面放一个 struct B 的前置声明吗? (我只是不想将 struct B 的定义放在 mem-funcs 的前面)。

最佳答案

这编译得很好:

class A
{
public:
struct B;

A();
B makeB(int); //question 1

struct B {
int _id;
B(int id) {};
};
};

A::A() {}

A::B A::makeB(int id) //question 2
{ return B(id); }

关于c++ - 类中的嵌套类或结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7414327/

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