旅の途中
你知道阿基米德原理吗?

导航

 

构造函数的构造操作

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

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

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

posted on 2017-05-27 23:19  CknightX  阅读(138)  评论(0编辑  收藏  举报