加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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数据将在您提供初始化列表时初始化.使用赋值的其他形式将使用命中初始化,然后另一个命中用于赋值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读