Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ 파생 클래스의 가상 함수

<시간/>

C++의 가상 함수는 파생 클래스 개체의 종류를 모른 채 기본 클래스 포인터 목록을 만들고 파생 클래스의 메서드를 호출하는 데 사용합니다. 가상 기능은 런타임에 늦게 해결됩니다.

기본 클래스의 가상 함수가 한 번 멤버 함수로 선언된 경우 해당 기본 클래스에서 파생된 모든 클래스에서 가상 함수가 됩니다. 따라서 가상 기본 클래스 함수의 재정의 버전을 선언하면서 파생 클래스에서는 virtual 키워드를 사용할 필요가 없습니다.

예시 코드

#include<iostream>
using namespace std;
class B {
   public:
      virtual void s() {
         cout<<" In Base \n";
      }
};
class D: public B {
   public:
      void s() {
         cout<<"In Derived \n";
      }
};
int main(void) {
   D d; // An object of class D
   B *b= &d; // A pointer of type B* pointing to d
   b->s(); // prints"D::s() called"
   return 0;
}

출력

In Derived