分页: 1 / 1

C++:类构造函数能不能调用另一个构造函数

发表于 : 2011-01-24 20:56
cuihao
比如有一个构造函数:
Myclass (int a, int b)

然后又重载了另一个构造函数:
Myclass (int *a)

我能不能直接使用代码:
this->Myclass(a[0], a[1])
定义第二个构造函数?
或者使用:
*this=Myclass(a[0], a[1])

Re: C++:类构造函数能不能调用另一个构造函数

发表于 : 2011-01-26 16:49
neil.sun
cuihao 写了:比如有一个构造函数:
Myclass (int a, int b)

然后又重载了另一个构造函数:
Myclass (int *a)

我能不能直接使用代码:
this->Myclass(a[0], a[1])
定义第二个构造函数?
或者使用:
*this=Myclass(a[0], a[1])
很久没玩C++的,说错了不要打我。

this->Myclass(a[0], a[1])是对的。构造函数可以调用自己的另一个构造函数。

*this=Myclass(a[0], a[1])是...怎么说呢...不是不对,是不合适。Myclass(a[0], a[1])会生成一个临时的对象,然后把自己的指针指向它?你觉得合适吗?除非你有意为之。

Re: C++:类构造函数能不能调用另一个构造函数

发表于 : 2011-01-31 13:42
ninsun
用第一种方法,甚至this->都是不需要的吧……:
Myclass(a[0], a[1]);
这样就行了……
第二种方法的话……
我晕了……this是静态的吧……无法赋值的吧……而且……没有new运算符的吗……明显不可能吧……

Re: C++:类构造函数能不能调用另一个构造函数

发表于 : 2011-01-31 23:58
xinzaibing
不行的,构造函数的调用是在你产生一个新的对象的时候由系统自动调用的,根据你传入的参数自动选择不同的构造函数

你试试写下代码跑一下就知道了