C++에서는 상속을 통해 다형성이 달성되므로 객체가 동일한 공통 기본 클래스를 가지더라도 다른 동작을 가질 수 있습니다. 상속은 새 클래스(파생 클래스)가 기존 클래스(기본 클래스)의 멤버를 상속하고 새 멤버를 추가할 수 있는 새 클래스를 만드는 방법입니다. 파생 클래스 형식의 포인터나 참조를 사용하여 가상 함수를 호출하면 파생 클래스의 재정의된 메서드가 호출됩니다.
다형성이란 무엇인가요?
다형성을 사용하면 객체가 동일한 공통 기본 클래스를 가지더라도 다른 동작을 가질 수 있습니다. C++에서는 상속을 사용하여 다형성을 달성합니다.
상속
상속은 클래스의 새로운 메서드를 만드는 방법으로, 새 클래스(파생 클래스)가 기존 클래스(기본 클래스)에서 상속됩니다. 파생 클래스는 기본 클래스의 모든 멤버(데이터 및 함수)를 상속하며 자체의 새 멤버를 추가할 수도 있습니다.
상속을 통해 다형성은 어떻게 달성되나요?
다형성에서 파생 클래스 객체는 기본 클래스 유형에 대한 포인터나 참조를 가질 수 있습니다. 파생 클래스 형식의 포인터나 참조를 사용하여 가상 함수를 호출하면 파생 클래스의 재정의된 메서드가 호출됩니다.
예:
class Animal { public: virtual void makeSound() { cout << "Animal makes a sound" << endl; } }; class Dog : public Animal { public: void makeSound() override { cout << "Woof woof!" << endl; } }; class Cat : public Animal { public: void makeSound() override { cout << "Meow meow!" << endl; } }; int main() { Animal* animal = new Cat(); // 指向 Cat 对象的 Animal 指针 animal->makeSound(); // 输出 "Meow meow!" }
위의 예에서는
Animal
이 기본 클래스입니다. Animal
是基类。Dog
和 Cat
是派生类。makeSound
是一个虚函数,在派生类中重写。animal
是一个指向派生类对象的基类指针。当调用 animal->makeSound()
时,会调用派生类(Cat
)中重写的 makeSound
Dog
및 Cat
는 파생 클래스입니다.
makeSound
는 파생 클래스에서 재정의되는 가상 함수입니다. 🎜animal
은 파생 클래스 객체를 가리키는 기본 클래스 포인터입니다. 🎜animal->makeSound()
를 호출하면 파생 클래스(Cat
)에서 재정의된 makeSound 메소드, "Meow meow!"를 출력합니다. 🎜
위 내용은 C++에서 상속은 어떻게 다형성을 달성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!