想了解清楚构造函数与析构函数首先弄明白初始化,初始化的意思是给变量赋初值,当给每个变量初始化时系统会为其分配一定的空间, 我们可以为每个变量赋初值也可以初始化一部分,但没有初始化的变量就会变成无政府状态所以最好为每个变量赋初值这是个好习惯,但为不必要的变量赋初值会浪费空间,所以因情况而定。类的初始化比较变态,类初始化呢,我们只能在公用函数进行,这个公用函数叫构造函数由初始化定义可知,构造函数只能在且仅在类定义时被执行一次。也就是说构造函数就是用来给类这个狗儿子进行初始化的。
接下来呢就是关于构造函数的一些特点。
1. 构造函数名和类名相同
2. 构造函数无返回值不是void而是前边啥都不用写
3. 构造函数可以重载
4. 构造函数可以在类内定义也可在类外定义
5. 当新的对象被建立时,该对象所属的类的构造函数自动被调用,在该对象生命期中也只能调用一次(好废话,初始化哪有初始化好几次的闲的??)
下边例子演示构造函数作用
1) #include<iostream>
2) using namespace std;
3) class A{
4)
5) int a,b;
6) public:
7) A()
8) {
9) a=0;
10) b=0;
11) }
12) A(int c,int d)
13) {
14) a=c;
15) b=d;
16) }
17)
18)
19)
20) void show()
21) {
22) cout<<a<<' '<<b<<endl;
23) }
24)
25) };
26)
27) int main()
28) {
29)
30) A a1,a2(5,6);
31)
32) a1.show();
33)
34) a2.show();
35) return 0;
}
运行为
那这就很明显了,首先要说明的是很重要哦,第五条当新的对象被建立时,该对象所属的类的构造函数自动被调用,在该对象生命期中也只能调用一次(好废话,初始化哪有初始化好几次的闲的??)
这句话被我严重低估了,要记住当对象被建立时,该对象的构造函数自动调用,也就是说在主函数不需要再另外调用了。还有就是关于他是如何重载的呢,如本代码第30行,就是建立两个对象,如上所说构造函数只能调用一次且是自动调用的,则如何实现重载呢,本代码有两个构造函数,代码12和7行分别为有参无参的两个构造函数,当代码第30行时可看出两个对象,当建立对象a1时,a1无参则会自动调用无参构造函数。当建立对象a2时有参数则自动调用有参构造函数。注意我多次提到自动调用,一定要记得哦。
然后就是析构函数,其实也挺麻烦的那我就会再写一篇吧,反正也闲的没事干。
因篇幅问题不能全部显示,请点此查看更多更全内容