请教CArray的用法
#include <afxtempl.h>
typedef int xsint[12];
CArray<xsint,xsint&> ary;
这为什么会出错呢?
谢谢。
问题点数:30、回复次数:7Top
1 楼blackblue(跌跌撞撞)回复于 2003-06-03 12:02:43 得分 8
xint是一个整型数组类型,则CArray的operator []函数应该返回数组类型
但VC的编译错误指出函数不能返回数组,只能返回指针
Compiler Error C2090
function returns array
A function cannot return an array. It can return a pointer to an array.
所以只能CArray<int*, int*&>Top
2 楼mtsh(清风华仔(*****))回复于 2003-06-03 12:06:53 得分 8
typedef typeA B;编译器实际上是把所有的B替换为庐山真面目typeA,因此搂主错了,原因是xint是什么东东,鬼才知道!编译器仅仅认识xint[12]而已!
如果你想实现数组的定义,可以这样:
typedef int xsint;
CArray<xsint,xsint&> arrDemo;
arrDemo.SetSize(12);
......Top
3 楼lizmei001(暗黑)回复于 2003-06-03 12:07:21 得分 2
你的xsint[12]是一个类型,但没有相应的=号等赋值函数Top
4 楼triggerd(有点着急)回复于 2003-06-03 12:14:40 得分 2
template<class TYPE, class ARG_TYPE>
class CArray : public CObject
{..
}
TYPE好像不能是数组.Top
5 楼winthegame(120斤重的大青蛙)回复于 2003-06-03 12:33:08 得分 5
最简单就这样了。
typedef int xint[12];
CArray<xint*, xint*>arrDemo;
Top
6 楼champDong(DoNg)回复于 2003-06-03 13:07:53 得分 5
简单的解决办法:
class xsint{
public:
int m_value[12];
};
CArray<xsint,xsint&> arrDemo;
Top
7 楼_china()回复于 2003-06-03 14:21:54 得分 0
谢大家, 散分。Top




