本文主要是介绍在构造函数中调用构造函数(C++中的误用),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
C++中,在构造函数中调用构造函数是一种误用,demo如下:
#include <stdio.h>class Test
{
public:int a;Test(){printf("construct Test()...\n");Test(88);}Test(int a){printf("construct Test(int a)...\n");a = 88;}~Test(){printf("destructor ~Test()...\n");}
};int main()
{printf("start\n");Test t1;printf("end\n");
}
程序输出如下:
从输出可以看出这不是我们想要的结果
这样写是想通过无参构造函数来调用有参构造,实现默认传参的功能,但实际上在第11行相当于初始化了一个临时对象,该临时对象会被自动释放,所以是达不到初始化对象的目的,正确的方法应该是声明一个普通成员函数,而构造函数通过调用该普通成员函数实现初始化,而不能在构造函数中调用构造函数。
这篇关于在构造函数中调用构造函数(C++中的误用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!