构造函数:

是成员函数的一种

  • 名字与类名相同,可以有参数,不能有返回值
  • 作用是对对象进行初始化,如给成员变量赋初值
  • 如果定义类时没写构造函数,则编译器会生成一个默认的无参数构造函数,默认的构造函数不进行任何操作
  • 对象生成时构造函数自动被调用。对象一旦生成,就再也不能调用构造函数
  • 一个类可以有多个构造函数(重载成员函数)

为什么需要构造函数:

1)构造函数执行必要的初始化工作,有了构造函数,就不必专门再写初始化函数,也不用担心忘记调用初始化函数。

2)有时对象没被初始化就使用,会导致程序出错。

如何初始化对象:

 

 1 class Complex
 2 {
 3 public:
 4     Complex(double x1, double x2);
 5     Complex(double x2);
 6     Complex();
 7     ~Complex();
 8 
 9 private:
10     double f1, f2;
11 };
12 
13 Complex::Complex(double x1,double x2)
14 {
15     printf("1:%f %f\n",x1,x2);
16 }
17 
18 Complex::Complex(double x2) {
19     printf("2:%f\n", x2);
20 }

 

 1 Complex x1(1,2);
 2 Complex *x2 = new Complex(1.0);//通过new运算符创建对象
 3 Complex x3[3] = { Complex(3,4),1, };//创建三个不同的对象
 4 Complex *x4 = new Complex[3];//通过new运算符创建三个相同的对象
 5 Complex *x5[3] = { new Complex(5,6),new Complex(9),new Complex };//通过new运算符创建三个不同的对象
 6 
 7 //通过new运算符创建的对象记得要用delete运算符进行删除!!!
 8 
 9 /*
10 1:1.000000 2.000000
11 2:1.000000
12 1:3.000000 4.000000
13 2:1.000000
14 0:
15 0:
16 0:
17 0:
18 1:5.000000 6.000000
19 2:9.000000
20 0:
21 */

 

posted on 2018-03-10 16:28  宵夜在哪  阅读(133)  评论(0编辑  收藏  举报