C构造函数定义
发布时间:2020-12-16 06:47:24 所属栏目:百科 来源:网络整理
导读:这里的所有构造函数方法都做同样的事情.我主要使用method2但今天第一次看到method3.在某些地方看过method1但不知道它们之间的确切差异是什么? 哪一个是定义构造函数的最佳方法,为什么?是否涉及任何性能问题? 1 class Test 2 { 3 private: 4 int a; 5 char
这里的所有构造函数方法都做同样的事情.我主要使用method2但今天第一次看到method3.在某些地方看过method1但不知道它们之间的确切差异是什么?
哪一个是定义构造函数的最佳方法,为什么?是否涉及任何性能问题? 1 class Test 2 { 3 private: 4 int a; 5 char *b; 6 public: 7 Test(){}; 8 9 // method 1 10 Test(int &vara,char *& varb) : a(vara),b(varb){} 11 12 // method 2 13 Test(int &vara,char *& varb) 14 { 15 a = vara; 16 b = varb; 17 } 18 19 //method 3 20 Test(int &vara,char *& varb) 21 { 22 this->a = vara; 23 this->b = varb; 24 } 25 26 ~Test(){} 27 }; 我在这里使用了简单的字段int和char *,如果我有很多字段或像struct这样的复杂类型会发生什么? 谢谢 解决方法
对于您使用的类型,性能可能没有差异.但是对于非POD数据(带有构造函数的类),形式如下:
Test(int &vara,b(varb){} 将是最有效的.这是因为非POD数据将在您提供初始化列表时初始化.使用赋值的其他形式将使用命中初始化,然后另一个命中用于赋值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |