CPP学习之——成员变量的初始化与构造函数(10.5)

一 概述

本节课主要讲述构造函数的初始化与成员变量的初始化

二 构造函数的初始化

2.1 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include<iostream>
using namespace std;

class demo
{
private:
int x;
public:
demo()
{
x = 0;
cout << "demo的默认构造函数!" << x << endl;
}
demo(int i)
{
x = i;
cout << "demo的带有一个参数的构造函数!" << x << endl;
}
~demo() {cout << "demo的默认析构函数!" << x << endl;}
int get() {return x;}
void set(int i) {x = i;}

};
class rectangle
{
private:
int x;
demo length;
demo width;
public:
rectangle()
{
x = 1000;
cout << "rectangle的默认构造函数!" << x << endl;
}
rectangle(int i, int j, int k) :
x(i), width(j), length(k)
{
cout << "rectangle的带3个参数的构造函数!" << "长方形b的面积为:"
<< length.get() * width.get() << endl;
}
~rectangle() {cout << "rectangle的默认析构函数!" << x << endl;}
int area() {return length.get() * width.get();}
};
int main()
{
rectangle a(100, 200, 300);
return 0;
}

2.2 输出结果

1
2
3
4
5
6
demo的带有一个参数的构造函数!300
demo的带有一个参数的构造函数!200
rectangle的带3个参数的构造函数!长方形b的面积为:60000
rectangle的默认析构函数!100
demo的默认析构函数!200
demo的默认析构函数!300

三 成员变量的初始化

3.1 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
using namespace std;
class A
{
private:
const int num;
int &total;
public:
A(int a,int b):num(a),total(b)
{
//num=a;
//total=b;
}
};
int main()
{
A a(3,4);
return 0;
}