#include <iostream>
struct Base1
{
public:
virtual void show()=0;
};
struct Base2
{
public:
virtual void Display()=0;
};
class Derived:virtual public Base1,virtual public Base2
{
public:
virtual void show(){}
virtual void Display(){}
};
void main()
{
using namespace std;
cout<<sizeof(Derived);
}
출력 12 를 도시하지만 Dervied 클래스 즉 소멸자를 삽입 할 때 그 때 출력으로 20 보이고 코드를다중 상속의 경우 파생 클래스의 크기가 증가하는 다형성의 경우 측면 파생 클래스의 소멸자에 대한 코드 작성. 왜?
#include <iostream>
struct Base1
{
public:
virtual void show()=0;
};
struct Base2
{
public:
virtual void Display()=0;
};
class Derived:virtual public Base1,virtual public Base2
{
public:
virtual void show(){}
virtual void Display(){}
~Derived(){}
};
void main()
{
using namespace std;
cout<<sizeof(Derived);
}
을 따르고있다. 왜?
중요하지는 않지만 어떤 컴파일러에서 재현됩니까? – sharptooth
@sharptooth : - 프로그램을 실행할 때마다 동일한 결과를 보여줍니다. – Suri
Tried Visual C++ 9? – sharptooth