c++之构造函数和析构函数

来源:互联网 发布:尤克里里软件哪个好 编辑:程序博客网 时间:2024/06/06 04:22

1、  构造函数:

(1)定义:

1)C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数;

2)构造函数在定义时可以有参数;

3)没有任何返回类型的声明。

(2)调用:

自动调用:一般情况下C++编译器会自动调用构造函数

手动调用:在一些情况下则需要手工调用构造函数

(3)例子代码:

#include <stdio.h>class test{public:test(){m_a = 10;m_b = 20;printf("无参构造函数被调用\n");}test(int a){m_a = a;printf("1个参数的构造函数被调用\n");}test(int a, int b){m_b = b;printf("2个参数的构造函数被调用\n");}private:int m_a;int m_b;};int main(){test t1;test t2(1, 2);test t3 = 100;test t4 = test(20, 30);return 0;}

2、析构函数

(1)定义:

1)C++中的类可以定义一个特殊的成员函数清理对象,这个特殊的成员函数叫做析构函数。 语法:~ClassName();

2)析构函数没有参数也没有任何返回类型的声明;

3)析构函数在对象销毁时自动被调用。

(2)调用:c++编译器自动调用。

(3)例子代码:

#include <stdio.h>#include <stdlib.h>#include <string.h>class test5_1{public:test5_1(){printf("调用构造函数\n");}~test5_1(){printf("调用析构函数\n");}private:int m_a;};int main5_1(){test5_1 t1;return 0;}class test5_2{public:test5_2(){m_name = (char *)malloc(sizeof(char) * 20);printf("构造函数被调用!\n");}~test5_2(){if (m_name != NULL){free(m_name);m_name = NULL;}printf("析构函数被调用!\n");}private:char *m_name;};int main(){test5_2 t1;printf("--------------------------------\n");return 0;}



原创粉丝点击