【发布时间】:2009-08-13 16:37:29
【问题描述】:
这里所有的构造方法都做同样的事情。我主要使用方法2,但今天第一次看到方法3。在某些地方见过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 会发生什么??
谢谢
【问题讨论】:
-
“初始化列表”是用于方法 1 的专有名词。
-
这是关于初始化列表的另一个问题:stackoverflow.com/questions/1237377/…
标签: c++