virtual class

프로그래밍 2011. 11. 3. 12:57
http://kldp.org/node/2182

http://www.winapi.co.kr/clec/cpp3/29-3-3.htm

c++에서

class A
{
 int a;


class B : public A
{
 int b;


class C : public A
{
 int c;
}
 
class D : public B, public C
{
}

가 있다면
 
class D 안에서 a를 사용하면 어느쪽의 a인지 애매해진다. 또한 컴파일러가 에러를 내뱉는다.
이를  

class B : virtual public A

class C : virtual public A  

로 해주면 에러가 일어나지 않는다

이를 가상 기반 클래스 라고 부르는듯 하다. 이렇게 지정하면 두번 상속되더라도 한번만 상속을 하게 된다고 한다.

'프로그래밍' 카테고리의 다른 글

delete 와 new  (0) 2011.11.03
C++ 생성자와 소멸자  (0) 2011.11.03
C++ 상속  (0) 2011.11.03
프리미티브 타입  (0) 2011.11.03
C언어 키워드  (0) 2011.11.02

설정

트랙백

댓글