我自己定义了一个类并给了一个构造函数
CRectangle:public Object{
public:
CRectangle(CRect rect);
protected;
CRect m_rect;
......}
后面在程序中new一个对象:
CRectangle* pRectItem=new CRectangle(CRect(0x12,0x23,0x34,0x45));
却报错如下:
error C2664: '__thiscall CRectangle::CRectangle(const class CRectangle &)' : cannot convert parameter 1 from 'class CRect' to 'const class CRectangle &'这是为什么呢?在msdn中说可能是由于代码是在以前版本下编译通过的原因,但是具体是什么呢?
如何解决呢?!
CRectangle:public Object{
public:
CRectangle(CRect rect);
protected;
CRect m_rect;
......}
后面在程序中new一个对象:
CRectangle* pRectItem=new CRectangle(CRect(0x12,0x23,0x34,0x45));
却报错如下:
error C2664: '__thiscall CRectangle::CRectangle(const class CRectangle &)' : cannot convert parameter 1 from 'class CRect' to 'const class CRectangle &'这是为什么呢?在msdn中说可能是由于代码是在以前版本下编译通过的原因,但是具体是什么呢?
如何解决呢?!
class CRectangle : public CObject
{
public:
CRectangle();
CRectangle(CRect rect);
virtual ~CRectangle();
protected:
CRect m_rect;
};
CRectangle::CRectangle()
{}
CRectangle::CRectangle(CRect rect)
{
m_rect=rect;
}
CRectangle::~CRectangle()
{}
CRectangle *angle=new CRectangle(CRect(0x12,0x23,0x34,0x45));
CRectangle没有问题啊!但是我在单独的文件里实现CRectangle就出现上面的编译错误了!
改过来就没问题了!但是我在想我的那些操作及其带来的问题了