#include <iostream>
#include <cstdio>
using namespace std;
class A
{
public:
char ach[3];
virtual void test() { };
};
class B : public A
{
public:
char bch[3];
virtual void btest() { };
};
class C : public A
{
char cch[3];
virtual void ctest() { };
};
class D : public B, public C
{
char dch[3];
virtual void dtest() { };
};
int main()
{
cout << sizeof(A) << endl; // 8 = 1 * 4(char) + 1 * 4(virtual table)
cout << sizeof(B) << endl; // 12 = 2 * 4(char) + 1 * 4(virtual table,基类)
cout << sizeof(C) << endl; // 12 = 2 * 4(char) + 1 * 4(virtual table,基类)
cout << sizeof(D) << endl; // 28 = 5 * 4(char) + 2 * 4(virtual table,两个基类)
return 0;
}
#include <iostream>
#include <cstdio>
using namespace std;
class A
{
public:
char ach[3];
virtual void test() { };
};
class B : virtual public A
{
public:
char bch[3];
virtual void btest() { };
};
class C : virtual public A
{
char cch[3];
virtual void ctest() { };
};
class D : virtual public B, virtual public C
{
char dch[3];
virtual void dtest() { };
};
int main()
{
cout << sizeof(A) << endl; // 8
cout << sizeof(B) << endl; // 16
cout << sizeof(C) << endl; // 16
cout << sizeof(D) << endl; // 32
return 0;
}
分享到:
相关推荐
不能用sizeof()函数 A1: 16位的系统下, int i = 65536; cout ; // 输出0; int i = 65535; cout ; // 输出-1; 32位的系统下, int i = 65536; cout ; // 输出65536; int i = 65535; cout ; // 输出65535; A2:...
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《Visual C++ 2005入门经典》的源代码及课后练习答案 对应的书籍资料见: Visual C++ 2005入门经典 ...
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《Visual C++ 2010入门经典(第5版)》的源代码及课后练习答案 对应的书籍资料见: Visual C++ 2010...
优点:经常用到一个函数带有大量缺省值,偶尔会重写一下这些值,缺省参数为很少涉及的例外情况提供了少定义一些函数的方便。 缺点:大家经常会通过查看现有代码确定如何使用API,缺省参数使得复制粘贴以前的代码...
面试题8:构造函数能否为虚函数 面试题9:简述子类与父类的析构、构造函数的调用顺序 面试题10:编写类String 的构造函数、析构函数和赋值函数 8.4 拷贝构造函数 面试题11:谈谈对拷贝构造函数和赋值运算符的认识 ...
面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得...
5.3.3.21 带有嵌入表达式的表达式的一般规则 103 5.3.3.22 调用表达式和对象创建表达式 103 5.3.3.23 简单赋值表达式 103 5.3.3.24 && 表达式 104 5.3.3.25 || 表达式 104 5.3.3.26 ! 表达式 105 5.3.3.27 ?? 表达式...
5.3.3.21 带有嵌入表达式的表达式的一般规则 103 5.3.3.22 调用表达式和对象创建表达式 103 5.3.3.23 简单赋值表达式 103 5.3.3.24 && 表达式 104 5.3.3.25 || 表达式 104 5.3.3.26 ! 表达式 105 5.3.3.27 ?? 表达式...
5.3.3.21 带有嵌入表达式的表达式的一般规则 103 5.3.3.22 调用表达式和对象创建表达式 103 5.3.3.23 简单赋值表达式 103 5.3.3.24 && 表达式 104 5.3.3.25 || 表达式 104 5.3.3.26 ! 表达式 105 5.3.3.27 ?? 表达式...
5.3.3.21 带有嵌入表达式的表达式的一般规则 103 5.3.3.22 调用表达式和对象创建表达式 103 5.3.3.23 简单赋值表达式 103 5.3.3.24 && 表达式 104 5.3.3.25 || 表达式 104 5.3.3.26 ! 表达式 105 5.3.3.27 ?? 表达式...
5.3.3.21 带有嵌入表达式的表达式的一般规则 103 5.3.3.22 调用表达式和对象创建表达式 103 5.3.3.23 简单赋值表达式 103 5.3.3.24 && 表达式 104 5.3.3.25 || 表达式 104 5.3.3.26 ! 表达式 105 5.3.3.27 ?? 表达式...