读书人

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

发布时间: 2012-04-21 14:34:44 作者: rapoo

小白问一个有关堆对象数组的问题!!
假如前面定义了一个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];

读书人网 >C++

热点推荐