C++(构造函数与析构函数)
来源:互联网 发布:mac word 改写快捷键 编辑:程序博客网 时间:2024/04/28 21:49
C++(构造函数与析构函数)
1. 构造函数
用于对类的对象的初始化,构造函数名与类名相同。
可在类内直接定义,也可在类内声明类外定义(定义时在函数名前加类名::)。
构造函数无返回值类型。
class C{public:C(int a,int b);//类内声明private:int m_num1;int m_num2;};//类外定义C::C(int a,int b){m_num1=a;m_num2=b;}
带参数的构造函数
初始化可以在函数体内,也可在函数体外。可以重载。
上例为函数体内进行初始化
函数体外初始化:C::C(int a,int b):m_num1(a),m_num2(2){};//只能用()进行初始化,不能用“=”,多个参数之间用逗号隔开//“:”到“{”的部分为初始化列表
只能在初始化列表里进行初始化的情况:
1、const成员和引用成员的初始化
2、类A的构造函数有参,其成员是类B的对象,但是类B的构造函数无参。缺省构造函数
若未定义一个类的构造函数,则C++提供一个缺省的构造函数。缺省构造函数仅仅负责创建对象,而不做任何初始化工作。拷贝构造函数
用一个对象的值创建并初始化另一个对象拷贝构造函数名与类名相同,没有返回值类型,只有一个参数(为该类对象的引用)。
格式为
类名::拷贝构造函数名::(类名&引用名)
{函数体}
eg:class C
{
public:
C(int a,int b)//带参构造函数
{
m_num1=a;
m_num2=b;
}
C(C&obj)//拷贝构造函数的定义
{
m_num1=obj.m_num1;
m_num2=obj.m_num2;
}
private:
int m_num1;
int m_num2;
int main()
{
C objA(1,2);//objA的m_num1的值为1,m_num2的值为2
C objB(objA);//此时objB的成员被objB赋值
return 0;
}
2. 析构函数
结束对象的生命期,打开一个文件使用完后关闭文件
无参数和返回值类型,不能随意调用,不能重载。析构函数名为~类名。
阅读全文
0 0
- c++-构造函数与析构函数
- C++--构造函数与析构函数
- 【c++】构造函数与析构函数
- C++:构造函数与析构函数
- 构造函数与析构函数(C++)
- C++(构造函数与析构函数)
- 【C++】初始化与清除(构造函数与析构函数)
- [C++]构造函数与析构函数讲解
- C语言的构造函数与析构函数
- C++_构造函数与析构函数
- 初识C#——构造函数与析构函数
- 关于Object-c 中的构造函数与析构函数
- C/C++面试题:构造函数与析构函数
- 3.4构造函数与析构函数【C++】
- 【学习C++】学习C++ -> 构造函数与析构函数
- C++ VS C#(10):构造函数与析构函数
- 一步一步学习C++(类)之构造函数与析构函数
- 构造函数和析构函数【c++】
- Oracle-伪列(rownum)
- 3des 加密
- jsp、freemarker、velocity、thymeleaf页面方案分析
- 2017ICPCECIC北方邀请赛
- 代价函数
- C++(构造函数与析构函数)
- Android性能优化之常用检测工具(三)
- 【Maven】Maven系列(二)——利用assembly插件打包
- bellman-ford 模板
- 让FX DocuPrint P225 db激光打印机打印时不遗漏细节
- 简单工厂模式
- EU4-22: Talking with the doctor
- EM算法
- Spring @FeignClient