|
发表于 2022-2-27 00:11:19
|
显示全部楼层
- #include <iostream>
- using namespace std;
- class MyClass{
- public:
- int m_x, m_y;
- MyClass();
- MyClass(int, int);
- MyClass(const MyClass &obj);
- ~MyClass();
- };
- MyClass::MyClass(){
- std::cout << "构造函数 A" << std::endl;
- }
- MyClass::MyClass(int a, int b): m_x(a), m_y(b){
- std::cout << "构造函数 B" << std::endl;
- }
- MyClass::MyClass(const MyClass &obj){
- m_x = obj.m_x;
- m_y = obj.m_y;
- std::cout << "拷贝构造函数" << std::endl;
- }
- MyClass::~MyClass(){
- std::cout << "析构函数" << std::endl;
- }
- int main()
- {
- MyClass A(13, 5); // 成员赋值,调用构造函数 B
- MyClass B = A; // 拷贝,调用拷贝构造函数
- MyClass *C = new MyClass(); // 成员没有赋值,调用构造函数 A
- delete C; // 用 new 必须要有 delete,手动释放内存
- return 0;
- }
复制代码- 构造函数 B
- 拷贝构造函数
- 构造函数 A
- 析构函数
- 析构函数
- 析构函数
复制代码 |
|