分页: 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
不行的,构造函数的调用是在你产生一个新的对象的时候由系统自动调用的,根据你传入的参数自动选择不同的构造函数
你试试写下代码跑一下就知道了