0
点赞
收藏
分享

微信扫一扫

cannot convert parameter 1 from 'class A' to 'class A'


​​何志丹​​

出错代码:

class A 

{

public:

A(){};

private:

CStringArray x ;

};


fun(A a)

{


}

void CTest22Dlg::OnButton1()

{


A a;

fun(a);

}

运行结果:


error C2664: 'fun' : cannot convert parameter 1 from 'class A' to 'class A'


原因分析:

 没有拷贝构造函数。

解决思路:

(1)增加拷贝构造函数。

(2)更改fun函数的参数为引用型。

解决办法:

(1)更改类定义。

class A 

{

public:

A(){};

A(const A& other){/*...*/};

private:

CStringArray x ;

};

(2)更改函数定义。

fun(const
{


}

举报

相关推荐

0 条评论