CArray(type, type)和CArray(type, type&)有何区别??(解决马上给分)
CArray(type, type)和CArray(type, type&)有何区别??顺便说一下含意吧。那到底还有没有CArray(type&, type)和CArray(type1, type2)[其中type1和type2是不同的类型,比如CArray(int, double)那到底是什么含意?]...... 问题点数:100、回复次数:9Top
1 楼johnshao(笨笨)回复于 2002-09-24 10:54:06 得分 20
这两种定义方式都可以,前一种定义方式在操作保存在数组中的对象时,其参数用的也是对象,后一种用的是引用;
不同类型的定义是可以的,不过你得在数据组类型type1中定义相应的操作,否则,没有意义。推存使用相同类型Top
2 楼roamstar(虛夜飛)回复于 2002-09-24 11:17:56 得分 0
upTop
3 楼eastrock(东方之石)回复于 2002-09-24 11:21:22 得分 0
CArray(type, type)和CArray(type, type&)能再说得明白一点吗,举一个例子好吗
Top
4 楼9headsnake(楚海云)回复于 2002-09-24 11:44:41 得分 50
CArray<int,int&>m_array
说明m_array类型是int
m_array里面的数据是int&, 是int的引用类型
CArray<int,int>里m_array
m_array里面的数据是int型,
在上面的例子中看不出引用的好处,但是如果是:
class Picture
{
....
}
CArray<Picture,Picture&>m_array就有它的好处了
因为引用用的是类的别名,当把数据保存到数组链表时用的是数据的副本
很安全,实用!
如果用的是CArray<Picture,Picture>时,每保存一个Picture类时,都调用其拷贝构造函数,那就麻烦了,具体的可以找找书看看,所以都使用引用类型,主要是为了安全!Top
5 楼eastrock(东方之石)回复于 2002-09-24 13:55:30 得分 0
好的。那么有没有可能有CArray<Picture&, Picture&>的,若有,什么意思Top
6 楼nuaazwg(潇湘浪客)回复于 2002-09-24 14:18:16 得分 0
真的么,学习。。Top
7 楼ancienttale(voidman)回复于 2002-09-24 14:43:04 得分 30
CArray定义:
template < class TYPE, class ARG_TYPE = const TYPE& >
class CArray : public CObject
注意看SetAt
void SetAt(INT_PTR nIndex,ARG_TYPE newElement);
用的是ARG_TYPE,这样的话,如果你的ARG_TYPE不是引用就会像9headsnake(楚海云) 所说的,拷贝一次,较低了执行效率,
强烈推荐使用stl
Top
8 楼romanticist(桃花岛主--杭州)回复于 2002-09-24 14:48:17 得分 0
哈 哈Top
9 楼eastrock(东方之石)回复于 2002-09-24 15:22:32 得分 0
发分Top
相关问题
- *** closesocket(s)与shutdown(s,type)的区别 100分 ***
- 谁能给我讲解一下 type [,]和type [][]的区别? 275分!
- CArray<sturct,struct> a 与CArray<struct,struct &> b有什么区别?
- sql2000中sysobjects表中xtype,type字段什么区别?先来先得分
- 50分求2者区别
- CList和CArray在功能上有什么区别???
- CList 与CArray的主要区别是什么
- CArray中的成员函数GetAt() 和 ElementAt()有什么区别呀?
- 关于TYPE和TYPE&的区别?
- Automation与Createable by type ID有何区别




