有没有办法建立一个构造函数初始化列表,它为嵌套类字段设置值? E.g:
·H
class A {
public:
A(int tmp);
class B{
friend A;
int x;
};
B b;
}
的.cpp
A(int tmp): x(tmp){};
如何使用构造函数初始化列表正确执行此操作?如果可能的话。
编辑:示例中的错误。
答案 0 :(得分:2)
是。您可以使用A
的成员初始化列表初始化b
。通常你会调用一个合适的B
构造函数,但在这种情况下,B
实际上并没有声明任何构造函数,但是很简单,标准的聚合初始化就可以了。
class A {
public:
A(int tmp);
class B{
public:
friend A;
int x;
};
B b;
};
A::A(int tmp) : b{tmp} {}
注意:我必须公开B
的成员。如果您不想这样做,则需要声明构造函数。