오버라이딩
-
메서드 오버라이딩(virtual)의 특수한 경우들@ 16. 1 ~ 17. 1/C++ 2014. 6. 28. 23:25
1. 부모클래스의 메서드가 static인 경우 C++에서는 static 메서드를 오버라이딩할 수 없다. 라는 사실만으로 알고 있자..ㅎㅎ 2. 부모클래스의 메서드가 오버로딩된 메서드인 경우 특정 이름과 파라미터로 메서드를 오버라이딩 하면 파라미터와 관계없이 같은 이름을 가지는 부모클래스의 모든 메서드들이 숨겨진다. A클래스 virtual void sh(); virtual void sh(int i); B클래스 : public A클래스 virtual void sh(); 하게 되면 B클래스.sh(1)는 호출이 안된다. 근데 아래 처럼 포인터로 접근하면.. B b; A *ptr=&b; ptr->sh(1) 은 된다.. 또 다른것으로는 using을 사용하면 오버라이딩 구현을 일부에만 적용하고 나머지는 부모클래스(A..