
C++ 类
文章平均质量分 63
青莲太初
这个作者很懒,什么都没留下…
展开
-
sizeof 类
sizeof计算的是变量、指针或者类在栈中占用的字节数。这里重点讲解一下类的大小。 计算方法: sizeof(类)=成员变量所占字节数(1、2、4、8字节对齐后)+虚函数指针 sizeof(虚继承类)= 本身成员变量所占字节数+ 父类的大小原创 2012-09-19 17:04:10 · 978 阅读 · 0 评论 -
虚函数表
1.虚函数表的创建:一个类存在虚函数的时候,编译器会为这个类创建一个虚函数表,这个表由这个类的所有对象共同所有。在创建这个类的类对象的时候将这个对象的前4个字节作为这项这个虚函数表的指针。即类对象的首地址中的内容存放的是虚函数表的地址。虚函数表的首地址里面存放的是第一个虚函数的首地址,如果有多个虚函数,则第二个虚函数的地址即为第一个虚函数首地址加上偏移量转载 2012-09-16 10:59:41 · 329 阅读 · 0 评论 -
C++继承时子类定义同名成员变量时的调用继承函数的问题
代码如下:C/C++ code #includeiostream.h>class Base{public: int a; Base() { a=0; cout"I`m base Begin"endl; } int Print() { coutaend转载 2012-09-17 15:28:25 · 25001 阅读 · 0 评论 -
C++继承
C++中继承分为三种方式:公有继承(public)、私有继承(private)、保护继承(protected)。 可以按照两个标准来区分这三种继承方式: (1)派生类(函数)是否可以访问基类的成员? 派生类(函数)是否可以访问基类的函数? (2)派生类的对象是否可以访问基类的成员? 是否可以访问基类的函数?原创 2012-09-19 09:42:16 · 667 阅读 · 0 评论 -
类继承和子类型 多继承和虚拟继承
//转自网友博客、1、 派生类对象与普通类对象的相同之处在于,可以直接访问该类的所有对象(包括this指针指向的对象和其他对象)的protected和private成员(包括其基类成员)。不同之处在于派生类对象只能访问其对应基类对象的protected成员(有隐式this指针传递),而不能访问其基类的其他对象的protect成员,而普通类对象则也可以直接访问该类所有对象的成员。 2、转载 2012-09-20 12:40:50 · 697 阅读 · 0 评论 -
大小测试(空类、带含静态和非含、虚和非虚的单继承和多继承等)
本文主要是测试类大小,包括空类、带静态和不静态变量的、虚和非虚的单继承和多继承类,及类或对象的 虚表及虚指针是否相同等情况的测试,并给出简单的解释,有不当的地方,敬请指出,一起交流与进步! /********************************************************************** 创建人: 蔡国武** 日转载 2012-09-20 12:49:16 · 1488 阅读 · 0 评论 -
C++虚继承、虚基类、虚函数与纯虚函数的概念和引用
一:什么是C++多继承的多义性?先看以下的代码: class A { public: int iValue; }; class B1:public A { public: void b1Printf() {cout}; class B2:public A { public: v转载 2012-09-20 10:56:55 · 951 阅读 · 0 评论 -
C++中的【菱形虚继承】深入剖析
在C++的多重继承中,出现菱形状继承的情况下,在构造对象时的内存分布及构造函数的调用流程上出现了问题。 好了,直接切入正题,所谓的菱形继承,最简单的构造如下: class A{public: A( void ) : nVar( 0xaaaa0000 ){} public: int nVar;};转载 2012-09-20 11:08:33 · 515 阅读 · 1 评论 -
求助sizeof类,多重继承,混合继承
(1)下面的程序的输出结果为什么是 19,18?class R{};class Ir1:public R{public:char r1[16];};class Ir2:public R{};class Ir3:public R{};class Ir4:public R{};class C1{char c1[16];};class C2{};class C3{};原创 2012-09-24 22:27:30 · 577 阅读 · 0 评论