我正在尝试学习如何使用数组/指针访问构造函数。
我知道如何访问类成员函数,但是我却停留在如何访问构造函数上。

该程序:
1.索要学费。
2.询问学校名称。
3.显示每个学校的名称。

#include<iostream>
#include<string>
using namespace std;

class School
{
public:
    School(string name = "")
    {   schoolname = name;}

    void Display()
    {   cout << "School name is " << schoolname;}

private:
    string schoolname;
};

int main()
{
    string sname;
    int schoolNO;
    School *myschool;
    myschool[10];

    cout << "Enter number of school : ";
    cin >> schoolNO;

    for (int i = 0; i < schoolNO; i++)
    {
        cout << "Enter school name : ";
        cin >> sname;

        myschool[i] = new School(sname);*//The error stated is in this line...*
        myschool[i].Display();
    }
}

最佳答案

问题是mySchool是对象而不是指针的数组,因此无法使用new将指针分配给它的元素。

替换为:

School *myschool;
myschool[10];


为了这:

School* myschool[10];


现在您有了一个指针数组,new将起作用。

10-04 17:44