#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;
}