从C看C++之(四)构造函数与析构函数
来源:互联网 发布:如何优化手机系统 编辑:程序博客网 时间:2024/04/30 18:01
构造函数的意义:
实现类成员初始化的一种快捷方式.使用限制:
1.与类名一样;2.无返回类型,void都不可以;3.其访问权限绝大部分是public,如果用于其派生类的话,可以是protect;调用机制:
定义类对象时,就要调用构造函数.如果没有显式声明的话,则系统调用缺少的默认的构造函数.如果存在多个构造函数,定义类对象时,需要显式指定调用哪个.
构造函数的声明模板:
className::className(){ ...;}
析构函数:
在对象的生命期结束时,释放系统为对象所分配的空间,即撤消一个对象.但是这里需要特别注意的是,new出来的对象是不会自动释放的,需要调用其反运算符delete.
使用限制:
1.函数名必须与类名相同,并在其前面加上字符“~”;2.不能带有任何参数,不能有返回值,不指定函数类型;3.一个类中,只能定义一个析构函数,析构函数不允许重载;4.析构函数是在撤消对象时由系统自动调用.
析构函数的声明模板:
ClassName::~ClassName( ){ ...;}
一个构造函数与析构函数的示例:
#include <iostream>class simpleClass{private: float x,y;public: float m,n; void setXY(float,float); void getXY(); simpleClass(float,float); ~simpleClass();};simpleClass::~simpleClass(){ std::cout << "GoodBye,Crue World!"<< std::endl;}simpleClass::simpleClass(float a,float b){ x = a; y = b;}void simpleClass::setXY(float a,float b){ x = a; y = b;}void simpleClass::getXY(void){ std:: cout << x << '\t' << y << std::endl;}int main(void){ simpleClass cls1(3.0,6.0); cls1.m = 10; cls1.n = 20; cls1.getXY(); cls1.setXY(2.0,5.0); cls1.getXY(); return 0;}
编译运行:
root@se7en-LIFEBOOK-LH531:~/learn/Cpp_Program# g++ this.cpp -o thisroot@se7en-LIFEBOOK-LH531:~/learn/Cpp_Program# ./this 3625GoodBye,Crue World!
0 0
- 从C看C++之(四)构造函数与析构函数
- c++-构造函数与析构函数
- C++--构造函数与析构函数
- 【c++】构造函数与析构函数
- C++:构造函数与析构函数
- 看C++中构造函数的调用顺序
- 关于c++默认的构造函数、析构函数、拷贝构造函数、move函数
- 【C#】 之 构造函数
- (四)C#之构造函数与析构函数
- 【C++】初始化与清除(构造函数与析构函数)
- 高质量C/C++编程指南 阅读笔记(四)类的构造函数、析构函数与赋值函数
- C++学习笔记11 构造函数与析构函数
- [C++]构造函数与析构函数讲解
- 构造函数与析构函数(C++)
- C语言的构造函数与析构函数
- C++_构造函数与析构函数
- 初识C#——构造函数与析构函数
- 关于Object-c 中的构造函数与析构函数
- 中汇(天津)税务师事务所
- VS2010 属性设置 只生成exe
- u-boot环境变量的设置与使用(转)~
- gprs模块在linux下ppp拨号上网
- 管理员操作1
- 从C看C++之(四)构造函数与析构函数
- 使用 Docker/LXC 迅速启动一个桌面系统
- pgsql更新操作
- 尚客:查看Linux服务器内存使用情况
- 深入理解Java Class文件格式(九)
- VBS对Excel操作的注意事项:[ Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别]
- table函数
- insmod modprobe加载驱动出现Invalid module format
- Remove Duplicates from Sorted Array