抽象类Mammal有纯虚函数graze()。Mammal类派生出Cow类和Sheep类, Cow类扩展数据成员名称(字符串),Sheep类扩展数据成员名称(字符串)。声明一个Mammal类的对象,通过此对象调用graze函数。
时间: 2024-04-11 08:28:16 浏览: 88
纯虚函数和抽象类的实例
抽象类Mammal的定义如下:
```cpp
class Mammal {
public:
virtual void graze() = 0;
};
```
Mammal类派生出Cow类和Sheep类,分别扩展了数据成员name。
```cpp
class Cow : public Mammal {
private:
std::string name;
public:
Cow(const std::string& cowName) : name(cowName) {}
void graze() override {
std::cout << "Cow " << name << " is grazing." << std::endl;
}
};
class Sheep : public Mammal {
private:
std::string name;
public:
Sheep(const std::string& sheepName) : name(sheepName) {}
void graze() override {
std::cout << "Sheep " << name << " is grazing." << std::endl;
}
};
```
声明一个Mammal类的对象并调用graze函数的代码示例:
```cpp
int main() {
Mammal* mammal = new Cow("Bessie");
mammal->graze();
delete mammal;
mammal = new Sheep("Dolly");
mammal->graze();
delete mammal;
return 0;
}
```
这样就可以创建一个Mammal类的对象,并通过该对象调用graze函数。注意在使用完对象后记得释放内存,以防止内存泄漏。
阅读全文