我的理解是,拷贝构造函数是用来用一个对象作为参数去初始化另一个对象。
#include <iostream>
using namespace std;
class Foo//创建一个类,类名为Foo
{
public:
Foo()//无参构造函数
{
cout<<"create Foo"<<endl;
}
//explicit 防止单参数的时候被用于自动类型转换
explicit Foo(int a)//单参构造函数
{
m_ia=a;
cout<<"create Foo"<<endl;
}
//const 可以避免奇怪的东西改变参数 //参数类型是类本身的引用
Foo(const Foo& temp)//拷贝构造函数
{
m_ia=temp.m_ia;
cout<<"create Foo copy"<<endl;
}
~Foo() //析构函数
{
cout<<"destruction Foo"<<endl;
system("pause");//便于在程序执行完毕之后看到析构函数的效果
}
void print_a() //打印成员变量
{
cout<<m_ia<<endl;
}
private:
int m_ia;//成员变量
};
int main()
{
Foo foo(2);//创建一个对象1,并带参数
Foo fooo(foo); //创建另一个对象2,并带参数,参数是对象1
fooo.print_a(); //打印对象2的成员变量
return 0;
}