标题:NEW的用法疑问?
只看楼主
Cking
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-9-23
 问题点数:0 回复次数:3 
NEW的用法疑问?
我在一本参考书上了解数组不能动态分配空间,在编译时就必须确定元素个数,那这个和C++里用 NEW动态分配数组空间冲突吗?具体如下:
class string {
char * contents;
int size;
public:
string(int sz)
{
contents = new char[sz];//注1
}
~string(){delect contents;}
};
main()
{
string s1(10);
string s2(20);
s1=s2;
return 1;
}
注1要动态的分配空间,形参变量 sz 只能在程序运行时才能确定呀,但是数组在编译时就要确定大小?
难道编译时,s1(10)已经把执行 sz=10? 但是这是编译阶段,怎么会执行程序呢?
这个问题实在把握难住了,请前辈指点!小弟先行谢谢啊!
搜索更多相关主题的帖子: NEW 用法 疑问 
2007-09-23 14:44
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 

你没把书看清楚。

1。在编译阶段需要确定大小的是静态数组。

2。在运行阶段确定大小的是动态数组。

你这里的EX属于2。


Fight  to win  or  die...
2007-09-23 15:00
Cking
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-9-23
得分:0 
以下是引用aipb2007在2007-9-23 15:00:13的发言:

你没把书看清楚。

1。在编译阶段需要确定大小的是静态数组

2。在运行阶段确定大小的是动态数组。

你这里的EX属于2。

谢谢啊!我是在C语言里面看的,以为差不多。那C里面的malloc是不是也能可以像new一样定义动态数组?

[此贴子已经被作者于2007-9-23 15:47:44编辑过]


2007-09-23 15:47
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
是的,但是语法不一样!

Fight  to win  or  die...
2007-09-23 17:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-172291-1-1.html




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

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