C++ 对象的隐式转换。
本帖最后由 lefter1986 于 2013-01-29 15:05:04 编辑 我用Visual Studio 2008编写如如下代码:
#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;
}
Foo f1; // 无参数的构造函数
Foo f2(f1); // 复制构造函数
Foo f3 = f2; // 复制构造函数
f3 = f1; // 赋值操作符