| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 791 人关注过本帖
标题:有个问题请教一下
只看楼主 加入收藏
asd6791868
Rank: 1
来 自:逆流
等 级:新手上路
帖 子:362
专家分:7
注 册:2008-7-27
结帖率:88.24%
收藏
 问题点数:0 回复次数:6 
有个问题请教一下
#include "iostream"
using namespace std;
void main ()
{ int *pia2 = new int[10] ();
       while(*pia2)
       {cout<<*pia2++<<endl;
}
}

书上说int *pia2 = new int[10] ();
在后面加个()可也初始化*pia2
我怎么不能呢??
搜索更多相关主题的帖子: include 
2008-12-05 20:11
chenbiancheng
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-30
收藏
得分:0 
是在什么环境下运行的?不同的运行环境有不同的规定,看和书上的是不是一样.
2008-12-05 20:19
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:0 
int这样的基本数据类型,在新的C++运行库中,是以类的形式存在的,对一些运算符做了重载,所以可以当做类来初始化,但早期的C库是不能的.如:
int i(10);//这样就是调用了构造函数,初始化为10了.
而new 也有变化,new[]的原型和new的原型如下:
void *__CRTDECL operator new[](size_t count) _THROW1(std::bad_alloc)
    {    // try to allocate count bytes for an array
    return (operator new(count));
    }
void *__CRTDECL operator new(size_t size) _THROW1(_STD bad_alloc)
        {       // try to allocate size bytes
        void *p;
        while ((p = malloc(size)) == 0)
                if (_callnewh(size) == 0)
                {       // report no memory
                static const std::bad_alloc nomem;
                _RAISE(nomem);
                }

        return (p);
        }
//可以这样做:
int* a = new int();//分配一个元素的int数组,初始化为0
int* b = new int(100); //分配一个元素的int数组,初始化为100
int* c = new int[20]();//分配20元素的int数组,所有元素初始化为0
int* d = new int[20](100); //这样做是错误的,不能初始化.

早期的C库没有这样定义new的函数,所以不能,和系统没有关系.如果你使用新的C++库,或者将new按上面的方式做重载,就可以这样做了.
该new的定义在文件"newaop.cpp"和"new.cpp"中,

[[it] 本帖最后由 debroa723 于 2008-12-5 21:02 编辑 [/it]]
2008-12-05 20:59
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:0 
!!!!

[[it] 本帖最后由 debroa723 于 2008-12-5 21:04 编辑 [/it]]
2008-12-05 21:02
asd6791868
Rank: 1
来 自:逆流
等 级:新手上路
帖 子:362
专家分:7
注 册:2008-7-27
收藏
得分:0 
谢谢斑竹

─條路 :  ┈片天  ┈個人  ─瞬間:
2008-12-06 10:58
asd6791868
Rank: 1
来 自:逆流
等 级:新手上路
帖 子:362
专家分:7
注 册:2008-7-27
收藏
得分:0 
谢谢斑竹

─條路 :  ┈片天  ┈個人  ─瞬間:
2008-12-06 10:58
hitcolder
Rank: 1
等 级:新手上路
威 望:1
帖 子:124
专家分:0
注 册:2008-10-28
收藏
得分:0 
回复 第3楼 debroa723 的帖子
受教了,不过函数原型看不太明白啊

不要在你的智慧中夹杂傲慢,也不要使你们的谦卑缺乏智慧的成分。
2008-12-07 11:52
快速回复:有个问题请教一下
数据加载中...
 
   



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

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