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