首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小白问一个有关堆对象数组的有关问题!

2012-04-21 
小白问一个有关堆对象数组的问题!!假如前面定义了一个Student类然后 Student onenew Student[]//error:

小白问一个有关堆对象数组的问题!!
假如前面定义了一个Student类

然后 Student one=new Student[];//error:不存在从"Student*" 转换到"Student"的适当构造函数

如果这样 Student *one=new Student[];//这样就没有问题

各位大神能告诉我这有什么区别麽?

[解决办法]
在C++里,new返回的是类型的指针,而不是对象,所以要加*

结贴率为0,小心以后问问题没人解答
[解决办法]
因为new出来的返回值是指向相应类型的指针,而不是直接的类型实例。所以你只能把它赋给对应的指针,而不能赋给一个普通的变量。

如果你需要一个Student的局部变量one,那该这么写:
Student one;

如果想要的是它的数组,那也可以这么写:
Student one[50];

如果不想占用栈空间,那就只好这么写了:
Student *one=new Student[50];

热点排行