往期链接
构造函数 https://mp.csdn.net/mp_blog/creation/editor/141328871
析构函数 https://mp.csdn.net/mp_blog/creation/editor/141329147
先导
它(拷贝构造函数)常见用途(我是想说它的调用时机):用已经创建的对象来初始化对象;
函数的传参;函数的返回值。
先讲,它一定,长成这模样:Entity(const Entity& e),即:类名(const 类名& 变量)
代码
#include <iostream>
class Entity
{
public:
int x, y;
//构造函数
Entity()
{
x = 0;
y = 0;
std::cout << "Created Entity" << std::endl;
}
//拷贝构造函数
Entity(const Entity& e)
{
x = e.x;
y = e.y;
std::cout << "Copied Entity" << std::endl;
}
//析构函数
~Entity()
{
std::cout << "Destroyed Entity" << std::endl;
}
void print()
{
std::cout << x << "," << y << std::endl;
}
};
int main()
{
Entity e;
e.print();
// 使用拷贝构造函数创建一个新对象
Entity e2 = e;
e2.print();
e.~Entity();
std::cin.get();
}