使用继承时如何修复中断的控制台

时间:2019-02-13 14:14:01

标签: c++

我是一个学生,我正在学习继承,所以我做一个简单的例子。但是,当我执行我的代码时,它只是执行了第一条语句并停止了。我怎么了我有这样的经验,要求调试。

class people
{
private:
    string name;
protected:
    string phone;
public:
    string age;
    string setName(string name)
    {
        this-> name = name;
    }
    string getName()
    {
        return name;
    }
};

class student: public people
{
public:
    string setPhone(string phone)
    {
        this-> phone = phone;
    }
    string getPhone()
    {
        return phone;
    }
};

int main()
{
student ict;
string name, phone;
cout<<"\nEnter name: "; getline(cin,name);
ict.setName(name);
cout<<"\nEnter phone: "; getline(cin,phone);
ict.setPhone(phone);
cout<<"\nEnter age: "; cin>>ict.age;
cout<<"\n==============================\nYour info: ";
cout<<"\nName:"<<ict.getName();
cout<<"\nPhone: "<<ict.getPhone();
cout<<"\nAge: "<<ict.age;
return 0;
}

1 个答案:

答案 0 :(得分:0)

据我所知,您的问题是您的setName()setPhone()函数的返回类型为string,但是它们没有任何改变。通常,您应该将这些作为void返回类型。

当我进行了较小的更改时,代码编译并对我来说运行得很好。

在该旁注中,您在setPhone()类中拥有student函数的方法/原因有点奇怪,尤其是因为phone的变量本身在您的{{1 }}类。

enter image description here