template< class TYPE, class ARG_TYPE > class CArray : public CObject前一个是存储在数组中的对象的类型,后者是用来访问存储在数组中的对象的类型
解决方案 »
- 头大了,在Doc类的onopendocument中无法使用messagebox,大家帮忙找原因啊,附代码
- IE控件CWebBrowser2(无flash) 占CPU
- 平反<<Network Programming for Microsoft Windows,2nd Edition>>中对WSAAsync Select模型的测试性能
- OpenGL中关于融合(透明效果)的问题(急!!!!!!!!!!!!!!!!!!!!)
- sniffer使用的问题!
- 请问制作一套人体骨骼展示系统?
- 关于CALLBACK函数的问题
- 彩鸟级的问题
- 序列化问题,大侠请帮忙!
- C++如何UNHOOk另一个软件上的WH_KEYBOARD
- 请问如何能修改CDialog上静态文本的字体?有没有什么办法能一下子把所有的CDialog上的字一起修改字体?
- 请家教!给钱!!!!!!!!!!!!!!!
比如,Add CMyAry对象时,私有成员ary是如何拷贝的?
我自己的对象(CMyAry)应该有哪些函数,才能够不导致内存问题。
重新分配,(动态分配)
remove时,不释放内存,
当该对象生存期限达到时,释放内存.
如果你这样定义CArray<CMyClass,CMyClass> ary;
你就需要给CMyClass写一个拷贝构造函数,还要重载等于号 =
例: CMyClass & operator = (CMyClass &myclass)
{
.......
}
CMyClass (CMyClass &myclass)
{
........
}
如果你这样定义CArray<CMyClass,CMyClass &> ary;
你只需要给CMyClass写个重载等于号 = 的方法就可以了.
如果你这样定义CArray<CMyClass*,CMyClass*> ary;
你仍然需要给CMyClass类写一个重载等于号 = 的方法.
有点明白了
请问重载的等于号有什么用?
即在什么时候重载会被调用?
两种定义=的重载应该是不一样的吧?
谢谢!
CArray<CMyClass,CMyClass&> ary1
...CArray<CMyClass,CMyClass&> ary2
ary2=ary1以上做法可不可以?
{
...
m_pData[nIndex] = newElement; //由于这句代码原因,你的ARG_TYPE类必须有等号运算符重载的,也就是你的CMyClass类必须有等于号运算符重载,否则程序会出错的。
}
...CArray<CMyClass,CMyClass&> ary2
ary2=ary1两上CArray对象之间能不能用等于号连接,要看CArray类是否重载了等于号,而不是看CMyClass是否重载了等于号。
是不是
class CMyClass
{
int
char
...
}
若成员都是简单类型就不用重载?
另外拷贝构造函数和等于号分别在什么情况下起作用?
比如CMyClass b=a;a是前面已定义的,此时起作用的是哪一个?
非常感谢你!
明天结贴,好不好?
另外拷贝构造函数和等于号分别在什么情况下起作用?
比如CMyClass b=a;a是前面已定义的,此时起作用的是哪一个?1. 成员都是简单类型与是否重载等于号没有直接关系,该重载的时候一定重载.
2. CMyClass b = a; 这时起作用的是CMyClass的重载等于号的方法.
3. CArray类的两个对象能不能直接用等号连接,你可以试试,我没做过这样的实验,因为CArray类里没有重载等于号的方法,如果你从CArray派生一个子类然后在子类中重载等于号应该是可行的.如果你不愿意派生的话,你可以循环赋值来达到与重载等于号同样的要求.