C/C++疑问

来源:互联网 发布:js正方形 编辑:程序博客网 时间:2024/05/17 22:35

1. 构造函数能否抛出异常?虚构函数呢?

2. 在类外能否调用构造函数?在类内呢?在类内的构造函数调用构造函数与类内的其它地方调用构造函数有什么区别?

通常调用构造函数,都会生成一个对象;

如果需要不生成对象,可以这样调用构造函数:pobj->ClassName::ClassName()

在类内调用跟类外调用类似,只要将pobj该为this就行了:this->ClassName::ClassName()

如果仅仅是ClassName::ClassName()或者ClassName(),那么会生成一个新的对象。

3. 自己不定义构造函数,是否编译器一定会生成一个默认构造函数?

自己的理解:会。但是有些默认构造函数是trial,有些是nontrial。前者什么事情也没做;后者做了实际的事情。

原创粉丝点击