c++中的构造函数与析构函数

1    声明和定义一个构造函数

1.1 声明一个构造函数-构造函数没有返回值类型;构造函数的名称必须与类名称相同;

如: Class Student{

public:

Student();//构造函数,且是默认构造函数

Student(int ,char *,int );//也是构造函数,但不是默认构造函数

}

调用该构造函数,将会为类分配内存空间,分配的内存空间主要是根据 成员变量的大小和成员函数的大小进行分配。

1.2 显式和隐式的调用构造函数

显式调用 Student chengyan = Student::Student();

Student chengyan = Student::Student(20,"chengyan",121);

隐式调用 Student chengyan; //编译器会隐式的去调用构造函数,不建议这么去做

Student chengyan(20,"chengyan",121);//隐式的调用非默认构造函数

1.3 默认构造函数

默认构造函数有俩种,一种是给构造函数提供默认值 

如:Class Student{

public:

Student(const char *name = "xiaoming" ,int age = 20 ,int class = 131 );//全部提供默认值的默认构造函数

}

第二种是对默认构造函数进行重载

如: Class Student{

public:

Student();//对默认构造函数进行重载

}

2 析构函数

2.1 析构函数的声明

析构函数和构造函数一样,没有返回值;

析构函数不接受参数;

析构函数的名称与类名一致;

析构函数要在声明前加特殊符号 “~”;

如: Class Student{

public:

Student();//构造函数

~Student();//析构函数

}

2.2 析构函数何时被调用

如果是局部变量,在代码执行完毕时调用;如果是静态变量,在程序结束时调用;如果是new出来的,在进行delete操作时调用。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值