【C++】构造函数语意

构造函数的构造操作

编译器何时会为一个类合成默认构造函数? 答:当编译器需要的时候。
有以下四种情况:

  1. 带有默认构造函数的类对象
    以下代码为例:
class Foo {public: Foo();}
class Bar {public: Foo foo; int a;}

Bar类内含一个带有默认构造函数的foo对象,故编译器会为其合成默认构造函数。但该构造函数仅仅构造foo,而不会对a做任何操作。这体现了被合成的默认构造函数只会满足编译器的需要,而不是程序的需要。为了满足程序的逻辑正确,必须由程序员提供合适的构造函数。

原文地址:https://www.cnblogs.com/cknightx/p/6914726.html