好问题,千万别错过。怎样使自己的类能够被CArray支持.

LoveAlien 2001-12-12 10:18:14
例如:自己写了一个类
class CTemp:public CObject
{
};

定义CArray;
CArray<CTemp,CTemp> m_temp;

但是当我调用m_temp.Add时无法通过编译

CTemp m_classTemp;

m_temp.Add(m_classTemp);

编译时出错:错误信息为:
error C2664: 'Add' : cannot convert parameter 1 from 'class CTemp' to 'class CTemp'
No copy constructor available for class 'CTemp'
...全文
183 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
shadowac 2001-12-12
  • 打赏
  • 举报
回复

重载操作符 =
使它支持你的类

Ily 2001-12-12
  • 打赏
  • 举报
回复
LoveAlien,你好!编译的错误信息:error C2664: 'Add' : cannot convert parameter 1 from 'class CTemp' to 'class CTemp',No copy constructor available for class 'CTemp'是由于在调用m_temp.Add(m_classTemp)的时候,m_temp需要创建一个CTemp对象,并且保证与m_classTemp的数据一样,因此理需要在class CTemp中加入一个拷贝函数:
CTemp & operator =(const CTemp &temp)
{
//加入需要赋值的语句
}
whool 2001-12-12
  • 打赏
  • 举报
回复
呵呵,一个字打错了,不好意思,不过,用完了之后可别忘了用Delete()啊!:)
whool 2001-12-12
  • 打赏
  • 举报
回复
不过,用完了之后可别完了用Delete()啊!:)
whool 2001-12-12
  • 打赏
  • 举报
回复
改为下面的方式就行了,:)

class CTemp:public CObject
{
};

定义CArray;
CArray<CTemp*,CTemp*> m_temp;


CTemp *pClassTemp;

pClassTemp=new Ctemp();
m_temp.Add(pClassTemp);

zj_ok 2001-12-12
  • 打赏
  • 举报
回复
LoveAlien 2001-12-12
  • 打赏
  • 举报
回复
谢谢!能不能解释一下。
蒋晟 2001-12-12
  • 打赏
  • 举报
回复
方法1 CArray<CTemp,CTemp&> m_temp;
方法2 定义构造函数CTemp(const CTemp& src)
蒋晟 2001-12-12
  • 打赏
  • 举报
回复
CArray<CTemp,CTemp&> m_temp;
bignacl 2001-12-12
  • 打赏
  • 举报
回复
应该不是array的问题
No copy constructor available for class 'CTemp',可能找不到CTemp的定义吧
LoveAlien 2001-12-12
  • 打赏
  • 举报
回复
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑up!
LoveAlien 2001-12-12
  • 打赏
  • 举报
回复
怎样用CObject代替,可不可以明示。
LoveAlien 2001-12-12
  • 打赏
  • 举报
回复
* *
* *
*******
*
*******
*
* *
* *
wagxm 2001-12-12
  • 打赏
  • 举报
回复
用CObject代替之!

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧