用C++设计ー个类族,在子类中定义与父类相同的函数,用不同类的对象进行函效的调用。可自定义程序所实现的功能,仅需満足父类与子类中具有相同函数,在主函数中用不同对象调用函数
时间: 2024-03-20 08:42:15 浏览: 125
好的,我可以为您解答这个问题。
首先,您需要定义一个父类,其中包含一个虚函数。虚函数可以在子类中被覆盖。然后,您需要定义两个或更多的子类,这些子类将重写父类的虚函数。每个子类可以定义自己的特定实现,但必须保持与父类相同的函数签名。
下面是一个简单的示例,其中包含一个名为Animal的父类和两个名为Dog和Cat的子类。每个子类都重写了Animal类的虚函数makeSound(),并定义了自己的特定实现。
```c++
#include <iostream>
using namespace std;
class Animal {
public:
virtual void makeSound() {
cout << "The animal makes a sound." << endl;
}
};
class Dog : public Animal {
public:
void makeSound() {
cout << "The dog barks." << endl;
}
};
class Cat : public Animal {
public:
void makeSound() {
cout << "The cat meows." << endl;
}
};
int main() {
Animal* animal1 = new Animal();
Animal* animal2 = new Dog();
Animal* animal3 = new Cat();
animal1->makeSound();
animal2->makeSound();
animal3->makeSound();
delete animal1;
delete animal2;
delete animal3;
return 0;
}
```
在上面的示例中,Animal类有一个虚函数makeSound(),它输出"The animal makes a sound."。Dog和Cat类都重写了这个函数,并定义了自己的实现,分别输出"The dog barks."和"The cat meows."。
在主函数中,我们创建了一个Animal类的对象animal1,一个Dog类的对象animal2和一个Cat类的对象animal3。然后,我们通过这些对象调用它们各自的makeSound()函数,输出了不同的结果。
这就是一个简单的类族的实现,其中子类重写了父类的虚函数,并且可以通过不同类的对象调用函数,实现不同的功能。
阅读全文