class B
{
public:
B(char c = 'a') : m_c(c) {}
public:
fun();
private:
char m_c;
};
class C: virtual public B
{ };
class D: virtual public B
{ };
class E
: public C
, public D
{ };
"가상"키워드가 클래스 E가 클래스 B의 복사본을 하나만 갖는 것을 어떻게 돕는 지 궁금합니다. 어떤 가상 키워드는 "클래스 C"에서 나중에 파생 클래스에 영향을 미칩니다 (이해할 수 있듯이 나는 가상 상속의 기본 작업을 이해하려고 노력하고 있습니다.이 질문의 대답을 찾으려고 노력했지만 얻지 못했습니다. 어떤 사람이라도 도움이 될 수있는 좋은 링크를 알고 있다면 제대로). 즉, 차이점은 무엇입니까가상 상속의 작동 방식
//1)
class C: virtual public B
{ };
//2)
class C: public B
{ };
우리는 C 등급을 더 이상 운전하지 않는 경우입니다. 객체를 생성하는 동안 1)과 2) 사이에 특별한 차이가있을 것입니다.
이 링크는 귀하에게 유용 할 수 있습니다 : http://en.wikipedia.org/wiki/Virtual_inheritance –