64,691
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
class Human
{
public:
Human(int nAge)
{
m_nAge = nAge;
m_nHeight = 183;
cout << "构造函数被执行" << endl;
}
Human(Human& man)
{
m_nAge = man.m_nAge;
m_nHeight = man.m_nHeight;
cout << "复制构造函数被执行" << endl;
}
~Human()
{
cout << "析构函数被执行" << endl;
}
void Print()
{
cout << m_nAge << "\t" << m_nHeight << endl;
}
private:
int m_nAge;
int m_nHeight;
};
int main()
{
Human a(26);
a.Print();
a = 27;
a.Print();
return 0;
}
// 楼主好好看看c++ primer
// 赋值操作符的形式是
// 注意 const
TYPE& TYPE::operator=(const TYPE& rhs)
{
// ...
return *this;
}
// 拷贝构造函数的形式为
TYPE::TYPE(const TYPE& val)
{
}
void operator= (Human& man)
{
m_nAge = man.m_nAge;
m_nHeight = man.m_nHeight;
cout << "赋值操作符被调用" << endl;
}
Foo f1; // 无参数的构造函数
Foo f2(f1); // 复制构造函数
Foo f3 = f2; // 复制构造函数
f3 = f1; // 赋值操作符