使用CArray模板出错

liuharris 2009-11-04 11:49:19
CMyClass 是自己写的类
#include <afxtempl.h>
CArray<CMyClass, CMyClass&>Ary;//定义全局

//添加数组
CMyClass tv;
Ary.SetSize(500, -1)
Ary.Add(tv);

//提取
int d = Ary.GetSize();
for (int i=0; i<d; i++)
{
CMyClass &t = Ary.ElementAt(i);
}
出错提示:error C2582: 'CMyClass' : 'operator =' function is unavailable

是不是
如果这样定义CArray<CMyClass,CMyClass> ary;
就需要给CMyClass写一个拷贝构造函数,还要重载等于号 =

如果这样定义CArray<CMyClass,CMyClass &> ary;
只需要给CMyClass写个重载等于号 = 的方法就可以了.

如果这样定义CArray<CMyClass*,CMyClass*> ary;
仍然需要给CMyClass类写一个重载等于号 = 的方法.


请问 1、如果我用CArray<CMyClass, CMyClass&>ary;方法定义的话,重载等于号= 的函数应该怎么写(10分)
2、如果我用CArray<CMyClass, CMyClass>ary;方法定义的话,拷贝构造函数又如何去写
(10分)
3、我上面使用CArray的方法有没有错误,有的话请指出(5分)
...全文
171 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yao-debo 2009-11-05
  • 打赏
  • 举报
回复
CArray <CMyClass, CMyClass*>Ary;//
CMyClass *pt = Ary.ElementAt(i);
用指针, 只是要注意释放的问题;
liuharris 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fandh 的回复:]
CMyClass 必须重载 “=”
[/Quote]


我知道啊,我就是请教 这个重载函数怎么写啊
fandh 2009-11-04
  • 打赏
  • 举报
回复
CMyClass 必须重载 “=”
dragoo1 2009-11-04
  • 打赏
  • 举报
回复
为什么不用vector呢。又快又标准
hongya6088 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 happyparrot 的回复:]
最好在CMyClass类中定义拷贝构造函数和=函数
拷贝构造函数:
C/C++ codeCMyClass::CMyClass(const CMyClass&myClass)
{//在这里进行类的成员变量的赋值处理}

CMyClass& CMyClass::operator= (const CMyClass&myClass)
{//在这里进行类的成员变量的复制处理return*this;
}
[/Quote]
ls正解
快乐鹦鹉 2009-11-04
  • 打赏
  • 举报
回复
最好在CMyClass类中定义拷贝构造函数和=函数
拷贝构造函数:
CMyClass::CMyClass(const CMyClass &myClass)
{
//在这里进行类的成员变量的赋值处理
}

CMyClass& CMyClass:: operator = (const CMyClass &myClass)
{
//在这里进行类的成员变量的复制处理
return *this;
}
jiabin_007 2009-11-04
  • 打赏
  • 举报
回复
帮你顶

16,551

社区成员

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

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

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