考虑如下类:
class A {
public:
// code...
private:
class B {
public:
int aNum;
// ...
}
}
我要为A创建一些构造函数,例如:
A::A() { } // default...
A::A(int input) { /* code... */ }
所以我想知道如何访问
aNum
,因为它不是直接在A下。 最佳答案
正如某些注释所指出的,您不能仅仅从aNum
中“访问” A
,因为它是B
的一部分。
您要么需要在B
中创建一个A
对象,然后在B
对象中设置值,要么需要将aNum
从B
移到A
。
如果在B
中创建一个A
对象,则外观将类似于以下内容。
struct A {
A(int input) {
bObj.aNum = input;
}
// ...
private:
struct B {
int aNum;
// ...
};
B bObj;
};
如果您想直接从
aNum
访问它,则应该考虑A
是否确实是嵌套类的一部分。在这种情况下,您的类设计很可能是错误的,并且aNum
实际上是A
而不是B
的一部分。