Lv.v

导航

2012年4月28日 #

类型转换总结

摘要: C++里,对象类型转化问题是需要严加注意的一个问题,包括隐式转换,强制转化,旧式转化等种类,需要加以总结。本篇文章概括总结类型转化问题,并侧重于类型的隐式转换问题。关于强制转换的详细的内容放在下篇文章中总结。一。类型相关:如果两个类型可以相互转换,则称这两个类型相关。只用相关类型之间才可能发生隐式类型或显示类型转换。1.算术类型之间的转换:算术类型指不包括void的内置类型,算术类型之间可以相互转换。 转换规则根据不同的转换条件而不同2.算术类型和bool类型之间的转换:可将算术对象转换为bool类型,bool对象也可以转换为int型3.整型和枚举类型:自动将枚举类型的对象或者成员转换为整型4 阅读全文

posted @ 2012-04-28 17:30 Lv.v 阅读(509) 评论(0) 推荐(0) 编辑

对象的内存布局

摘要: 首先介绍一下C++中有继承关系的类对象内存的布局:在C++中,如果类中有虚函数,那么它就会有一个虚函数表的指针__vfptr,在类对象最开始的内存数据中。之后是类中的成员变量的内存数据。 对于子类,最开始的内存数据记录着父类对象的拷贝(包括父类虚函数表指针和成员变量)。 之后是子类自己的成员变量数据。 对于子类的子类,也是同样的原理。但是无论继承了多少个子类,对象中始终只有一个虚函数表指针。 为了探讨C++类对象的内存布局,先来写几个类和函数 首先写一个基类: class Base{public:virtual void f() { cout << "Base::f&qu 阅读全文

posted @ 2012-04-28 15:15 Lv.v 阅读(727) 评论(0) 推荐(0) 编辑