78 lines
1.3 KiB
C++
78 lines
1.3 KiB
C++
|
/*
|
|||
|
* Function: 构造函数的分类及调用
|
|||
|
* Date: 2024-04-19
|
|||
|
* Design by JRNitre
|
|||
|
*
|
|||
|
* Function:
|
|||
|
* * 构造函数
|
|||
|
* * 析构函数
|
|||
|
* */
|
|||
|
|
|||
|
#include <iostream>
|
|||
|
using namespace std;
|
|||
|
|
|||
|
class person{
|
|||
|
private:
|
|||
|
int age;
|
|||
|
|
|||
|
public:
|
|||
|
/*
|
|||
|
* 构造函数 - 无参构造
|
|||
|
* 如果不写构造函数,编译器默认提供的是无参构造函数
|
|||
|
* */
|
|||
|
person(){
|
|||
|
cout << "构造函数" << endl;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
* 构造函数 - 有参构造
|
|||
|
* */
|
|||
|
person(int a){
|
|||
|
this->age = a;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
* 拷贝构造函数
|
|||
|
* 将传入的对象的属性拷贝至当前对象中
|
|||
|
*
|
|||
|
* 1. 需要拷贝的对象需要是 const 静态对象
|
|||
|
* 2. 传入需要通过地址的方式传入
|
|||
|
* */
|
|||
|
person(const person &p){
|
|||
|
this->age = p.age;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
* 析构函数
|
|||
|
* */
|
|||
|
~ person(){
|
|||
|
cout << "析构函数" << endl;
|
|||
|
}
|
|||
|
|
|||
|
int getAge(){
|
|||
|
return this->age;
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
void test_1 (){
|
|||
|
// 默认构造函数调用
|
|||
|
person p1;
|
|||
|
// 有参构造函数
|
|||
|
person p2(10);
|
|||
|
// 拷贝构造函数
|
|||
|
person p3(p2);
|
|||
|
}
|
|||
|
|
|||
|
void test_2 (){
|
|||
|
person p4 = person (10);
|
|||
|
person p5 = 10;
|
|||
|
}
|
|||
|
|
|||
|
int main (){
|
|||
|
|
|||
|
// test_1();
|
|||
|
test_2();
|
|||
|
|
|||
|
system("pause");
|
|||
|
return 0;
|
|||
|
}
|