C++继承与派生string相关

这个主函数怎么不能匹配调用啊

img


#include<iostream>
#include<string>
using namespace std;
class Person
{
       private:
                string *name;
                int id;
       public:
                Person(string *name1,int id1);
                void Display();
                ~Person();
};

Person::Person(string *name1,int id1)
{
        name=name1;
        id=id1;
}
void Person::Display()
{
        cout<<"Name:"<<name<<endl;
        cout<<"ID:"<<id<<endl;
}
Person::~Person()
{
        delete [] name;
}

class CollegeStu : public Person
{
        private:
                string *major;
                double score;
        public:
                CollegeStu(string *name,int id,string *major1,double score1);
                void Display();
};
CollegeStu::CollegeStu(string *name,int id,string *major1,double score1) : Person(name,id)
{
        major=major1;
        score=score1;
}
void CollegeStu::Display()
{
        Person::Display();
        cout<<"Major:"<<major<<endl;
        cout<<"C++ Score:"<<score;
}
int main()
{
       string name,major;
       string id;
       double score;
       cin>>name>>id>>major>>score;
       CollegeStu cs(name,id,major,score);
       cs.Display();
       return 0;
}


#include <iostream>
#include <string>

using namespace std;

class Person
{
private:
    string _name;
    int _id;

public:
    Person(const string &name, int id);
    ~Person();

    void Display() const;
};

Person::Person(const string &name, int id) : _name(name), _id(id)
{
}

Person::~Person()
{
}

void Person::Display() const
{
    cout << "Name:" << _name << endl;
    cout << "ID:" << _id << endl;
}

class CollegeStu : public Person
{
private:
    string _major;
    double _score;

public:
    CollegeStu(const string &name, int id, const string &major, double score);
    void Display() const;
};

CollegeStu::CollegeStu(const string &name, int id, const string &major, double score)
    : Person(name, id), _major(major), _score(score)
{
}

void CollegeStu::Display() const
{
    Person::Display();
    cout << "Major:" << _major << endl;
    cout << "C++ Score:" << _score << endl;
}

int main()
{
    string name, major;
    int id;
    double score;
    cin >> name >> id >> major >> score;
    CollegeStu cs(name, id, major, score);
    cs.Display();
    return 0;
}

str.c_str()

不匹配,找不到对应的构造函数,看一下实参形参类型对应不对应。
希望对题主有所帮助,可以的话,帮忙点个采纳!

参数为什么要用指针啊,用引用就行了
参数为指针的话,函数调用如下:
CollegeStu cs(&name,id,&major,score);

好吧,是我指针学的有问题了,我再去看看,谢谢各位大哥了