当前位置: 首页> 娱乐> 八卦 > C++如何实现继承和多态

C++如何实现继承和多态

时间:2025/9/6 12:27:44来源:https://blog.csdn.net/m0_57621770/article/details/139835958 浏览次数:0次

继承

继承是指一个类(子类)从另一个类(父类)继承属性和方法。C++支持单继承和多继承。

#include <iostream>// 基类(父类)
class Animal {
public:// 基类中的方法void eat() {std::cout << "Animal is eating." << std::endl;}
};// 派生类(子类)
class Dog : public Animal {
public:// 子类中的方法void bark() {std::cout << "Dog is barking." << std::endl;}
};int main() {Dog myDog;myDog.eat();  // 调用从基类继承的方法myDog.bark(); // 调用子类自己的方法return 0;
}

 在这个示例中,Dog类继承了Animal类,因此Dog对象可以调用Animal类中的eat方法。

多态

多态是指在运行时根据对象的实际类型调用相应的方法。C++通过虚函数(virtual function)实现多态。

#include <iostream>// 基类(父类)
class Animal {
public:// 虚函数virtual void speak() {std::cout << "Animal speaks." << std::endl;}
};// 派生类(子类)
class Dog : public Animal {
public:// 重写基类中的虚函数void speak() override {std::cout << "Dog barks." << std::endl;}
};// 派生类(子类)
class Cat : public Animal {
public:// 重写基类中的虚函数void speak() override {std::cout << "Cat meows." << std::endl;}
};void makeAnimalSpeak(Animal* animal) {// 调用虚函数,实现多态animal->speak();
}int main() {Animal* myDog = new Dog();Animal* myCat = new Cat();makeAnimalSpeak(myDog); // 输出 "Dog barks."makeAnimalSpeak(myCat); // 输出 "Cat meows."delete myDog;delete myCat;return 0;
}
Animal* myDog = new Dog();
myDog->speak(); // 调用 Dog 类的 speak 方法

在这段代码中,虽然 myDog 是一个 Animal 类的指针,但它实际上指向一个 Dog 对象。当调用 speak 方法时,C++会根据对象的实际类型(即 Dog)调用相应的方法,从而实现多态。

关键字:C++如何实现继承和多态

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: