一、构造函数
主要作用在于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用。
语法:类名(){}
1.构造函数没有返回值也不用写void。
2.函数名称与类名相同。
3.构造函数可以有参数,因此可以发生重载。
4.程序在调用对象时候会自动调用构造,无须手动调用,而且只会调用一次。
class Person
{
public:
Person(){
cout <<"Person构造函数的调用"<<endl;
}
}
二、拷贝构造函数
为保证数据不变需用到const + 引用来拷贝构造函数。
class Person
{
public:
Person(){
cout <<"Person构造函数的调用"<<endl;
}
Person(int a){
cout <<"Person有参构造函数的调用"<<endl;
age = a;
}
Person(const Person &p){
age = p.age;
}
int age;
}
三、构造函数的调用
形式一(括号法)、
Person p1;
Person p2(10);//有参
Person p3(p2);
形式二(显示法)、
Person p1;
Person p2 = Person(10);
Person p3 = Person(p2);
形式三(隐式转换法)、
Person p2 = 10;
Person p3 = p2;
四、析构函数
主要作用于对象销毁前系统自动调用,执行一些清理。
语法:~类名(){}
1.析造函数没有返回值也不用写void。
2.析数名称与类名相同,在类名前加~。
3.析造函数不可以有参数,因此不可以发生重载。
4.程序在对象销毁前会自动调用析构,无须手动调用,而且只会调用一次。
class Person
{
public:
Person(){
cout <<"Person构造函数的调用"<<endl;
}
~Person(){
cout <<"Person析构函数的调用"<<endl;
}
}
|