0
巨型新问题,我根本无法在google上找到答案。在C++中初始化类成员对象
说,我有以下类:
class A {
private:
B b;
public:
A();
};
我将如何去构建一个内部的构造B'我可以吗:
A() {
b();
}
还是什么?
在此先感谢。
巨型新问题,我根本无法在google上找到答案。在C++中初始化类成员对象
说,我有以下类:
class A {
private:
B b;
public:
A();
};
我将如何去构建一个内部的构造B'我可以吗:
A() {
b();
}
还是什么?
在此先感谢。
查找初始化列表(http://en.cppreference.com/w/cpp/language/initializer_list):
A() : b(...) { }
B被缺省默认构造。只有当您需要与默认构造函数不同的东西时才需要执行此操作。
@PravasiMeet:将事情未初始化通常不是一个好主意。虽然在POD的情况下,有这种可能性是一个好主意。嗯,你的问题比我想的要深。无论如何。在这种情况下,它是不可避免的,假设B是类类型,会自动进行初始化。 –
@LightnessRacesinOrbit我知道初始化列表是什么,但由于以前只看到它用于基元,并没有意识到它实际上是用给定的值构造它们。事实上,像整数或字符这样的东西可以构建的事实对我来说是新闻。 – Sunspawn