부모 클래스의 virtual 함수를 부르는 법


Bar에서 Foovirtual void printStuffoverriding하면서 FooprintStuff()를 부르고 싶습니다. 자바에서는 super.printStuff()같이 쓰면 됐는데 C++에서는 어떻게 쓰나요?

소스코드

class Foo
{
public:
    int x;

    virtual void printStuff()
    {
        std::cout << x << std::endl;
    }
};

class Bar : public Foo
{
public:
    int y;

    void printStuff()
    {
        // Foo.printStuff()을 부르고 싶어요!!!!!!!
        std::cout << y << std::endl;
    }
};

조회수 521


1 답변


좋아요
0
싫어요
채택취소하기

C++에서는 다음과 같이 base 클래스의 이름 뒤에 ::를 붙여서 씁니다.

class Bar : public Foo {
  // ...

  void printStuff() {
    Foo::printStuff(); // base class의 함수 호출
  }
};

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close