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;}
阅读全文
0 0
- C#OOP之六 构造函数和析构函数
- 构造函数和析构函数【c++】
- [c++]构造函数和析构函数
- 【C#】构造函数和析构函数
- 【C++】构造函数和析构函数
- 【C++】构造函数和析构函数
- C++:构造函数和析构函数
- <C++>析构函数、虚析构函数和构造函数
- 【C/C++】构造函数和析构函数
- C/C++——构造函数和析构函数
- 虚函数之析构函数和构造函数
- C/C++——构造函数、复制构造函数和析构函数的执行时刻
- C++之析构函数和构造函数调用时间---补充(2)《Effective C++》
- 【C#】 之 构造函数
- C++_构造函数和析构函数
- C#の构造函数和析构函数
- C++_构造函数和析构函数
- 学习C++——构造函数和析构函数
- android 性能测试基础知识系列1
- 数据结构之线性表(顺序表)的基本操作
- LightOJ 1274 Beating the Dataset (概率dp)
- HDU 2093 考试排名
- rabbitMq集成Spring后,消费者设置手动ack,并且在业务上控制是否ack
- c++之构造函数和析构函数
- 02--Mysql安装、配置、卸载
- 正则表达式总结实例
- hibernate检索策略
- Matlab数值计算示例: 牛顿插值法、LU分解法、拉格朗日插值法、牛顿插值法
- 对于Java中Set、List、Map的一些总结
- Java中从键盘输入多个整数
- 郁闷的c小加(一)
- 二分图相关