| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2252 人关注过本帖
标题:[求助]关于对象数组的初始化
只看楼主 加入收藏
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
BOX b[3]={BOX("Zhang",1),
BOX("Wang",2),
BOX("Li",3)};
== box[0]=box("zhang ",1)
box[1]=box("wang",2)
.....
这是用无名对象了,不是用数据初始化

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-11-04 08:49
litcatyx
Rank: 1
等 级:新手上路
威 望:1
帖 子:151
专家分:0
注 册:2006-10-27
收藏
得分:0 
BOX b[3]={BOX("Zhang",1),
BOX("Wang",2),
BOX("Li",3)};
不调用BOX的默认构造函数,直接调用BOX("Zhang",1)等初始化对应的内存空间

2006-11-04 10:18
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
怎么不调用构造函数///??
只是 不是默认的罢了

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-11-04 13:46
litcatyx
Rank: 1
等 级:新手上路
威 望:1
帖 子:151
专家分:0
注 册:2006-10-27
收藏
得分:0 
我没说不调用构造函数,我说的是不调用默认构造函数

2006-11-04 18:47
litcatyx
Rank: 1
等 级:新手上路
威 望:1
帖 子:151
专家分:0
注 册:2006-10-27
收藏
得分:0 
而且
BOX b[3]={BOX("Zhang",1),
BOX("Wang",2),
BOX("Li",3)};

!= box[0]=box("zhang ",1)
box[1]=box("wang",2)


前者是初始化,后者是赋值

2006-11-04 18:56
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
你试试吧
看是不是我的说法
它只是构造了3个无名对象
然后复制给了数组
对于数组不是直接用数据初始化的
而用无名对象

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-11-04 21:41
litcatyx
Rank: 1
等 级:新手上路
威 望:1
帖 子:151
专家分:0
注 册:2006-10-27
收藏
得分:0 
谢谢版主指点,确实如你所说,先构造匿名对象,然后调用拷贝构造函数(而不是我之前说的直接用BOX("Zhang",1),Sorry),不过也不是你之前所说的赋值,所以还是
BOX b[3]={BOX("Zhang",1),
BOX("Wang",2),
BOX("Li",3)};

!= box[0]=box("zhang ",1)
box[1]=box("wang",2)
第一个是初始化,第二个是赋值,只是初始化用的是匿名对象

2006-11-05 10:30
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

相对与数据来说,它就是副职


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-11-05 10:54
litcatyx
Rank: 1
等 级:新手上路
威 望:1
帖 子:151
专家分:0
注 册:2006-10-27
收藏
得分:0 
第一个是直接在对应的内存地址上调用拷贝构造函数,怎么能说是赋值,而且它根本不调用operator=

2006-11-05 11:10
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

是啊
但那个是对于一个对象啊
所以数组不能用数据初始化
顶多一个


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-11-05 11:15
快速回复:[求助]关于对象数组的初始化
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012646 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved