
读书笔记
hfer
这个作者很懒,什么都没留下…
展开
-
指向Data Member的指针——《Inside The C++ Object Model》之二
指向data member的指针是C++的一个语言特性,对于考察class member的底层布局,尤其是虚函数指针和虚基类指针在class object中的布局很有用。如下面的例子 #include <iostream> class Point { public: Point():x(0x10),y(0x20){} virtual void vFun(){} st...2008-06-01 10:01:00 · 140 阅读 · 0 评论 -
继承体系下的对象构造与解构——《Inside The C++ Object Model》之三
1 所有virtual base class constructor必须被调用,从左到右,从最深到最浅: 如果class 被列于member initialization list中,那么如果有任何明确指定的参数,都应该传递过去,若没有列于list中,而class有一个default constructor,也应该调用之 此外,class中的每一个virtual base class sub...2008-06-03 23:30:52 · 106 阅读 · 0 评论 -
杂记——《Inside The C++ Object Model》之四
每一个nonstatic data member的offset在编译期即可获得,即使它属于base class 通过对象和通过对像指针对于data member的存取操作,当data member是一个struct member,class member,单一继承、多重继承的情况完全一样,当data member是一个来自virtual base class的member的时候,则存在差异 ...2008-06-04 00:13:47 · 113 阅读 · 0 评论 -
C++ 对象模型——《Inside The C++ Object Model》之五
C++对象模型中,nonstatic data members 被配置于每一个class object之内,static data members则存放在所有class object之外。static 和 nonstatic function members 也被放在所有class object 之外。C++ 对象模型对虚函数的支持策略如下: 1. 每一个class 产生一堆指向virtual f...2008-06-04 23:59:23 · 158 阅读 · 0 评论 -
杂记—— 《C++程序设计语言》
1. 类定义可以由于#include的使用而在不同源文件里重复出现,这样并不违反唯一定义规则 2. class的const成员函数不能修改class 成员变量 3. 对于const或者非const对象都可以调用const成员函数,而非const成员函数则只能对非const对象调用 p205 4. 在类X的非const成员函数里,this 的类型就是X*;在类X的const成员函数里 t...2008-06-09 01:10:23 · 127 阅读 · 0 评论 -
Empty Class 的大小——《Inside The C++ Object Model》之一
在C++中,一个空类的大小到底是多少呢?当你定义如下的一个类X时,你设想它的大小是多少? class X {}; X的大小是0吗?请看下面的代码 #include <iostream> using namespace std; class X{}; class Y:public virtual X{}; class Z:public virtual X{}; class A:publ...2008-05-28 16:49:56 · 116 阅读 · 0 评论 -
SCJP Note 1
Chapter 2 面向对象编程 1、构造器的修饰符只能有:public,private,protected或缺省;构造器可以重载,但不能继承 2、protected和private不能修饰顶级类,只能修饰内部类 ? Chapter 3 标识符、关键字和类型 1、标识符可以包含:字母、数字,下划线(_)、美元符号($) ;第一个字符必须为字母、下划线或者$;字母指的是Unicode...原创 2008-12-21 00:30:18 · 119 阅读 · 0 评论 -
SCJP Note 2
Chapter 8 异常 1、Error类由系统使用,用户不能使用,用于处理系统在运行环境方面产生的异常,如Java虚拟机错误,类状态错误等。 Exception 类用于处理程序自身的错误,包括编译期错误和运行期错误。其中RuntimeException及其子类属于运行期异常,其余属于编译期异常 2、运行期异常: ArithmeticException、ArrayStor...原创 2008-12-21 00:31:26 · 122 阅读 · 0 评论