C++定义一个马类,再由此派生出白马类,定义构造函数,定义一个白马类的对象
时间: 2024-03-25 16:41:19 浏览: 84
以下是使用 C++ 定义一个马类,并由此派生出白马类,定义构造函数,以及创建一个白马类的对象的示例代码:
```c++
#include <iostream>
#include <string>
class Horse {
private:
std::string name;
int age;
std::string color;
public:
// 构造函数
Horse(std::string name, int age, std::string color);
// 成员函数
void run();
void neigh();
// getter 和 setter 函数
std::string getName();
void setName(std::string name);
int getAge();
void setAge(int age);
std::string getColor();
void setColor(std::string color);
};
// 构造函数的实现
Horse::Horse(std::string name, int age, std::string color) {
this->name = name;
this->age = age;
this->color = color;
}
// 成员函数的实现
void Horse::run() {
std::cout << name << " is running!" << std::endl;
}
void Horse::neigh() {
std::cout << name << " is neighing!" << std::endl;
}
// getter 和 setter 函数的实现
std::string Horse::getName() {
return name;
}
void Horse::setName(std::string name) {
this->name = name;
}
int Horse::getAge() {
return age;
}
void Horse::setAge(int age) {
this->age = age;
}
std::string Horse::getColor() {
return color;
}
void Horse::setColor(std::string color) {
this->color = color;
}
// 白马类的定义
class WhiteHorse : public Horse {
public:
// 构造函数
WhiteHorse(std::string name, int age);
// 成员函数
void run();
};
// 白马类的构造函数实现
WhiteHorse::WhiteHorse(std::string name, int age) : Horse(name, age, "white") {
// nothing to do
}
// 白马类的成员函数实现
void WhiteHorse::run() {
std::cout << getName() << " is running on the grassland!" << std::endl;
}
int main() {
WhiteHorse wh("Snowy", 5);
wh.run();
return 0;
}
```
上述代码中,我们使用 `Horse` 类定义了一个基类,然后使用 `WhiteHorse` 类继承 `Horse` 类并定义了一个白马类。在 `WhiteHorse` 类的构造函数中,我们调用了基类 `Horse` 的构造函数来初始化基类的属性,然后使用 `"white"` 来初始化派生类的 `color` 属性。在 `WhiteHorse` 类的 `run()` 成员函数中,我们重载了基类 `Horse` 的 `run()` 函数以实现白马类特有的行为。
在 `main()` 函数中,我们创建了一个名为 `Snowy`,年龄为 `5` 的白马类的对象,并调用了它的 `run()` 函数来模拟白马奔跑的场景。
阅读全文