| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1254 人关注过本帖
标题:const对象的动态分配
只看楼主 加入收藏
独孤剑魔
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2008-8-5
收藏
 问题点数:0 回复次数:4 
const对象的动态分配
我在书中看到,c++允许动态创建 const 对象,例如;const int *p = new const int(1024)//前提是必须初始化
我在vc++6.0上测试,无法通过编译,以下是错误:
--------------------Configuration: vava - Win32 Debug--------------------
Compiling...
vwx.cpp
D:\c++程序\vava\vwx.cpp(6) : error C2468: 'new' : cannot allocate 'const'/'volatile' objects (type is 'const int')
D:\c++程序\vava\vwx.cpp(6) : error C2166: l-value specifies const object
Error executing cl.exe.

vava.exe - 2 error(s), 0 warning(s)

求教指点,谢谢。
搜索更多相关主题的帖子: const 动态 对象 
2008-09-04 09:53
BlueDreame
Rank: 1
等 级:新手上路
帖 子:545
专家分:2
注 册:2004-12-16
收藏
得分:0 
没有遇过,是不是VC6对标准支持不完善的关系。

2008-09-04 11:32
xyt_bluesky
Rank: 1
等 级:新手上路
威 望:1
帖 子:27
专家分:0
注 册:2008-8-16
收藏
得分:0 
const对象的动态分配

如果我们在自由存储区中创建的数组存储了内置类型的const对象,则必须为这个数组初始化,因为数组元素都是const对象,无法赋值。实现这个要求的唯一方法是对数组做值初始化:

//error:uninitialized const array
const int *pci_bad = new const int[100]
//ok:value_initiazed const array
const int *pci_bad = new const int[100]();
C++允许定义类类型的const数组,但该类类型必须提供默认的构造函数:

//ok array of 100 empty strings
const string *pcs = new const string[100]
在这里,将使用string类的默认构造函数初始化数组元素

当然,已创建的常量元素不允许修改------因此这样的数组实际上用处不大


我用的是VC9.0  能运行的  不知道其他的编译系统是否能运行
2008-09-04 15:59
独孤剑魔
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2008-8-5
收藏
得分:0 
误会了,我所说的不是指向const的数组,是一个const的对象,这个示例是 在 c++primer中看到的。
2008-09-04 19:37
liaojuncong
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2008-4-26
收藏
得分:0 
你把第二个const去掉看看能不能运行吧,要是不行可能是你那个软件的问题了
!!!
2008-09-04 20:29
快速回复:const对象的动态分配
数据加载中...
 
   



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

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