构造函数语法:类名(){ }
- 构造函数,没有返回值也不写void
- 函数名称与类名相同
- 构造函数可以有参数,因此可以发生重载
- 程序在调用对象时候会自动调用构造,无须手动调用,而且只会调用一次
析构函数语法: ~类名(){ }
- 析构函数,没有返回值也不写void
- 函数名称与类名相同,在名称前加上符号 ~
- 析构函数不可以有参数,因此不可以发生重载
- 程序在对象销毁前会自动调用析构,无须手动调用,而且只会调用一次
两种分类方式:
按参数分为: 有参构造和无参构造
按类型分为: 普通构造和拷贝构造
三种调用方式:
括号法
显示法
隐式转换法
代码示例:
#include<iostream>
using namespace std;
class Person
{
public:
Person()
{
cout << "默认构造函数的调用" << endl;
}
Person(int a)
{
age = a;
cout << "有参构造函数的调用" << endl;
cout << "年龄:"<<age << endl;
}
Person(const Person &p)
{
age = p.age;
cout << "拷贝构造函数的调用" << endl;
cout << "年龄:" << age << endl;
}
~Person()
{
cout << "析构函数的调用" << endl;
}
private:
int age;
};
void main()
{
Person P0;
Person P1(1);
Person P2(P1);
Person p2 = Person(10);
Person p3 = Person(p2);
Person p4 = 10;
Person p5 = p4;
}
|