#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;p= new Student[5]; //为什么总是提示没有合适的构造函数,这里我是想动态建立一个包含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;}
3 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
构造函数不对,是两个参数(int,int)。
所有你得:
p=new Student(1,1)[5];
否则自己加一个构造函数
Student::Student();
然后再加一个输入的函数input(...);
才能p=new Student()[5];
*(p+1).input(...);
元芳怎么了
TA贡献1798条经验 获得超7个赞
Student* = new Student[5]; |
要那样开辟内存,你必须要有默认参数的构造函数,就是说
class Student { public : Student(); // 默认参数的构建(比如,默认name,0分) Student( int , int ); void display(); private : int number; int score; }; |
- 3 回答
- 0 关注
- 378 浏览
添加回答
举报
0/150
提交
取消