比如有一个构造函数:
Myclass (int a, int b)
然后又重载了另一个构造函数:
Myclass (int *a)
我能不能直接使用代码:
this->Myclass(a[0], a[1])
定义第二个构造函数?
或者使用:
*this=Myclass(a[0], a[1])
?
C++:类构造函数能不能调用另一个构造函数
- cuihao
- 帖子: 4793
- 注册时间: 2008-07-24 11:33
- 来自: 郑州
- 联系:
C++:类构造函数能不能调用另一个构造函数
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 蓝红黄蓝绿红
Site: CUIHAO.TK Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
Site: CUIHAO.TK Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
-
- 帖子: 110
- 注册时间: 2009-08-28 15:00
Re: C++:类构造函数能不能调用另一个构造函数
很久没玩C++的,说错了不要打我。cuihao 写了:比如有一个构造函数:
Myclass (int a, int b)
然后又重载了另一个构造函数:
Myclass (int *a)
我能不能直接使用代码:
this->Myclass(a[0], a[1])
定义第二个构造函数?
或者使用:
*this=Myclass(a[0], a[1])
?
this->Myclass(a[0], a[1])是对的。构造函数可以调用自己的另一个构造函数。
*this=Myclass(a[0], a[1])是...怎么说呢...不是不对,是不合适。Myclass(a[0], a[1])会生成一个临时的对象,然后把自己的指针指向它?你觉得合适吗?除非你有意为之。
- ninsun
- 帖子: 25
- 注册时间: 2010-10-31 16:50
Re: C++:类构造函数能不能调用另一个构造函数
用第一种方法,甚至this->都是不需要的吧……:
Myclass(a[0], a[1]);
这样就行了……
第二种方法的话……
我晕了……this是静态的吧……无法赋值的吧……而且……没有new运算符的吗……明显不可能吧……
Myclass(a[0], a[1]);
这样就行了……
第二种方法的话……
我晕了……this是静态的吧……无法赋值的吧……而且……没有new运算符的吗……明显不可能吧……
-
- 帖子: 6
- 注册时间: 2011-01-31 23:39
Re: C++:类构造函数能不能调用另一个构造函数
不行的,构造函数的调用是在你产生一个新的对象的时候由系统自动调用的,根据你传入的参数自动选择不同的构造函数
你试试写下代码跑一下就知道了
你试试写下代码跑一下就知道了