【发布时间】:2015-09-20 00:44:38
【问题描述】:
我将如何进行这项工作?教授指示我们使用私有变量。我是否必须设置新变量才能在 Student 构造函数中输入 Person 的私有成员?完成这项工作的最有效方法是什么?
提前谢谢你。
class Person
{
friend istream& operator>>(istream&, Person&);
friend ostream& operator<<(ostream&, Person&);
private:
char* m_name;
int m_age;
string m_ssn;
public:
Person() = default;
Person(char*, int, const string&);
Person(const Person&);
~Person();
void setName(char*);
char* getName();
void setAge(int);
int getAge();
void setSSN(string);
string getSSN();
Person& operator=(const Person&);
};
// ...
class Student : public Person
{
friend istream& operator>>(istream&, Student&);
friend ostream& operator<<(ostream&, Student&);
private:
float m_gpa;
public:
Student() = default;
Student(char*, int, const string&, float);
Student(const Student&);
void setGPA(float);
float getGPA();
Student& operator=(const Student&);
};
istream& operator>>(istream &is, Student &iStudent)
{
// ?
return is;
}
【问题讨论】:
标签: c++ inheritance operator-overloading