首页 > 代码库 > new对象时,类名后加括号与不加括号的区别
new对象时,类名后加括号与不加括号的区别
【1】默认构造函数
关于默认构造函数,请参见随笔《类中函数》
请看测试代码:
1 #include <iostream> 2 using namespace std; 3 4 // 空类 5 class empty 6 { 7 }; 8 9 // 一个默认构造函数,一个自定义构造函数10 class Base11 {12 public:13 Base() 14 { 15 cout << " default Base construct " << endl;16 m_nValue = http://www.mamicode.com/100; 17 };18 Base(int nValue) 19 { 20 cout << " custom Base construct " << endl;21 m_nValue =http://www.mamicode.com/ nValue; 22 };23 24 private:25 int m_nValue;26 };27 28 // 一个默认复合构造函数29 class custom30 {31 public:32 custom(int value = http://www.mamicode.com/100)33 { 34 cout << " default && custom construct " << endl;35 m_nValue =http://www.mamicode.com/ value; 36 }37 38 private:39 int m_nValue;40 };41 42 void main()43 {44 empty* pEmpty1 = new empty;45 empty* pEmpty2 = new empty();46 47 Base* pBase1 = new Base;48 Base* pBase2 = new Base();49 Base* pBase3 = new Base(200);50 51 custom* pCustom1 = new custom;52 custom* pCustom2 = new custom();53 54 delete pEmpty1;55 delete pEmpty2;56 57 delete pBase1;58 delete pBase2;59 delete pBase3;60 61 delete pCustom1;62 delete pCustom2;63 }64 // Result:65 /*66 default Base construct67 default Base construct68 custom Base construct69 default && custom construct70 default && custom construct71 */
至此足以。
【2】加括号与不加的区别
(1)加括号
1. 若括号为空,即无实参项,那么理解为调用默认构造函数;
2. 若括号非空,即有实参项,可以理解为调用重载构造函数,或默认复合构造函数。
(2)不加括号
调用默认构造函数,或默认复合构造函数。
Good Good Study, Day Day Up.
顺序 选择 循环 总结
new对象时,类名后加括号与不加括号的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。