解决这个问题的方法是使用面向对象编程的概念,具体步骤如下:
以下是一个使用C++语言实现的示例代码:
#include
using namespace std;
// 定义基类
class Animal {
public:
virtual void makeSound() {
cout << "Animal makes a sound." << endl;
}
};
// 定义派生类1
class Dog : public Animal {
public:
void makeSound() override {
cout << "Dog barks." << endl;
}
};
// 定义派生类2
class Cat : public Animal {
public:
void makeSound() override {
cout << "Cat meows." << endl;
}
};
int main() {
// 实例化不同的派生类对象
Animal *animal1 = new Dog();
Animal *animal2 = new Cat();
// 调用对象的成员函数
animal1->makeSound(); // 输出:Dog barks.
animal2->makeSound(); // 输出:Cat meows.
delete animal1;
delete animal2;
return 0;
}
在上述示例中,基类Animal定义了一个公共的成员函数makeSound(),并且使用virtual关键字进行声明。派生类Dog和Cat分别继承了Animal类,并且重写了makeSound()函数。
在主函数中,我们实例化了一个Dog对象和一个Cat对象,并将它们的指针赋给基类Animal的指针。然后通过调用对象的makeSound()函数,根据对象的类型,会调用对应派生类的makeSound()函数。
输出结果为:
Dog barks.
Cat meows.
这表明不同类的实例具有不同的成员函数定义。
下一篇:不同类型变量的函数