<分区>
我正在学习 C++,这是我第一次尝试了解复制构造函数的工作原理:
class Cents
{
private:
int m_nCents;
public:
Cents(int nCents=0)
{
m_nCents = nCents;
}
// Copy constructor
Cents( Cents cSource)
{
m_nCents = cSource.m_nCents;
}
};
int main()
{
Cents cMark(5); // calls Cents constructor
Cents cNancy = cMark; // calls Cents copy constructor!
return 0;
}
但是我得到这个错误:
Error 1 error C2652: 'Cents' : illegal copy constructor: first parameter must not be a 'Cents'
我的复制构造函数有什么问题?
我检查过如果在构造函数中我通过引用传递参数,那么它编译得很好,但不会按照我正在做的方式工作。为什么会这样?