글
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
로 해주면 에러가 일어나지 않는다
이를 가상 기반 클래스 라고 부르는듯 하다. 이렇게 지정하면 두번 상속되더라도 한번만 상속을 하게 된다고 한다.
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 |