关于C++建立动态对象数组 没有错误,但是输出结果不对
#include<iostream>
using namespace std;
class Student
{
public:
Student(int,int);
void display();
private:
int number;
int score;
};
Student::Student(int a,int b)
{
number=a;
score=b;
}
void Student::display()
{cout<<number<<":"<<score<<endl;}
int main()
{
Student* p= new Student[5]; //在这里想动态建立数组并且指向第一个元素,为什么报错,但是如果在定义一个默认的空构造函数就不报错了,只是输出结果不对,应该是没能指向第一个对象,怎么改啊!
Student student[5]={Student(1,89),Student(2,92),Student(3,98),Student(4,95),Student(5,81)};
int i;
for(i=0;i<5;i=i+2)
{
p[i].display();
}
cout<<endl;
delete p;
return 0;
}
c++ 对象数组 动态
[解决办法]
需要默认构造函数,否则数组对象无法构造。
如果你的编译器支持 c++11 的话,可以试一下这样。
Student* p= new Student[5]{{1,89},{2,92},{3,98},{4,95},{5,81}};