1.派生类继承的基类中缺省的构造函数时
源代码:
#include <iostream>
using namespace std;
class Base
{
public:
Base()
{ }
void FunTest()
{ }
int m_a;
};
class Der : public Base
{
public:
void FunTest1()
{ }
};
void Test()
{
cout << "********" << endl;
Der d;
}
int main()
{
Test();
getchar();
return 0;
}
看看汇编
如果去掉基类中
Base()
{ }
在看看汇编
2.派生类虚拟继承基类时
代码:
#include <iostream>
using namespace std;
class Base
{
public:
void FunTest()
{ }
int m_a;
};
class Der : virtual public Base
{
public:
void FunTest1()
{ }
};
void Test()
{
cout << "********" << endl;
Der d;
}
int main()
{
Test();
getchar();
return 0;
}
看看汇编
如果去掉继承列表中的virtual
在看看汇编
3.派生类中有其他类类型的成员(该类有缺省的构造函数)时
代码:
#include <iostream>
using namespace std;
class Base
{
public:
void FunTest()
{ }
int m_a;
};
class T
{
public:
T()
{ }
void FunTest()
{ }
int m_a;
};
class Der :public Base
{
public:
void FunTest1()
{ }
T test;
};
void Test()
{
cout << "********" << endl;
Der d;
}
int main()
{
Test();
getchar();
return 0;
}
看看汇编
如果去掉T类中
T()
{ }
在看看汇编
4.派生类或基类中有虚函数的出现时
代码:
#include <iostream>
using namespace std;
class Base
{
public:
virtual void FunTest()
{ }
int m_a;
};
class Der :public Base
{
public:
void FunTest1()
{ }
};
void Test()
{
cout << "********" << endl;
Der d;
}
int main()
{
Test();
getchar();
return 0;
}
看看汇编
如果去掉Base类函数FunTest()前的virtual
在看看汇编