编写一个名为Teacher的类,该类公有继承自Person类,并且增加major属性用来表示教师的专业,增加sleep( )方法打印教师的睡觉时间;c++代码
时间: 2023-12-10 09:42:57 浏览: 50
下面是C++的代码实现:
```cpp
class Teacher : public Person {
private:
string major;
public:
Teacher(string name, int age, string gender, string major) : Person(name, age, gender), major(major) {}
void sleep() {
cout << "Teacher " << getName() << " sleeps at 11 PM." << endl;
}
string getMajor() const {
return major;
}
};
```
在上面的代码中,我们定义了一个名为Teacher的类,该类公有继承自Person类。我们增加了一个名为major的私有属性,用来表示教师的专业。我们还增加了一个名为sleep的公有方法,用来打印教师的睡觉时间。在构造函数中,我们调用了父类Person的构造函数,并初始化了major属性。
注意,为了使Teacher类能够访问Person类的私有属性和方法,我们需要使用public继承。
相关问题
编写一个名为Teacher的类,该类公有继承自Person类,并且增加major属性用来表示教师的专业,增加sleep( )方法打印教师的睡觉时间;
好的,以下是Teacher类的代码实现:
```c++
class Teacher : public Person {
public:
string major;
Teacher(string n, int a, char s, string m) : Person(n, a, s), major(m) {}
void sleep() {
cout << "Teacher " << name << " sleeps at 10 PM." << endl;
}
};
```
在上述代码中,Teacher类公有继承自Person类,因此可以继承Person类中的属性和方法。同时,Teacher类增加了一个专业属性major,并定义了一个sleep()方法,用于打印教师的睡觉时间。在构造函数中,我们使用了初始化列表来初始化Teacher类中的属性和继承自Person类的属性。
编写一个名为Teacher的类,该类公有继承自Person类,并且增加major属性用来表示教师的专业,增加sleep( )方法打印教师的睡觉时间;
以下是一个可能的实现:
```cpp
class Teacher : public Person {
public:
Teacher(string name, int age, string major) : Person(name, age), m_major(major) {}
string getMajor() const { return m_major; }
void sleep() const { cout << getName() << " usually sleeps from 11pm to 6am." << endl; }
private:
string m_major;
};
```
这里的 `Teacher` 类继承自 `Person` 类,具有 `name` 和 `age` 成员变量以及 `getName()`、`getAge()` 方法。另外,它增加了一个 `major` 成员变量表示教师的专业,并且定义了一个 `getMajor()` 方法用来获取它。此外,它还增加了一个 `sleep()` 方法,用来打印教师的睡觉时间。注意,这里的 `sleep()` 方法没有修改任何成员变量,因此它应该是一个 `const` 成员函数。