摘要: 本篇笔记主要分为两个主要部分,第一部分关于对象模型,第二部分是关于new和delete的更加深入的学习。 一、对象模型 关于vptr(虚指针)和vtbl(虚函数表) 只要用到了虚函数,对象中就会多一个指向虚函数表的虚指针。在32位环境下,将占4Bytes的空间。 在vtbl中,每一项都是指向自己类应 阅读全文
posted @ 2016-08-05 16:54 shawnChi 阅读(2612) 评论(0) 推荐(0) 编辑
摘要: 一、类型转换 class Fraction { public: explicit Fraction(int num, int den=1) : m_numerator(num), m_denominator(den) { cout << m_numerator << ' ' << m_denomin 阅读全文
posted @ 2016-08-05 11:26 shawnChi 阅读(2602) 评论(0) 推荐(0) 编辑
摘要: 以Fruit和Apple为例进行分析: Fruit和Apple的定义如下: 通过在两种编译环境下的测试(GNU GCC & VS2015),可以发现这两种编译器的对象模型是一样的,如下图所示: Apple是Fruit的子类,此为两级的单链继承结构。在Apple和Fruit对象内部,均遵循以下原则: 阅读全文
posted @ 2016-08-04 12:07 shawnChi 阅读(804) 评论(0) 推荐(0) 编辑
摘要: 本篇笔记主要分为三个部分,第一部分是以String类为例的基于对象的编程,重点在于构造与析构、拷贝构造函数、拷贝赋值函数三个重要函数。这一部分与笔记(1)中的内容结合起来就是基于对象编程的主要内容。第二部分是在掌握了基于对象编程的基础上的面向对象编程(OOP)学习,讲解了类之间的组合、继承、委托关系 阅读全文
posted @ 2016-07-31 22:39 shawnChi 阅读(714) 评论(0) 推荐(3) 编辑
摘要: 本篇笔记以复数类(不含指针的类)为例进行面向对象的学习 ========================================================= 复数类的声明: 1 class complex 2 { 3 public: 4 complex (double r = 0, double i = 0): re (r), im (i) { }... 阅读全文
posted @ 2016-07-19 21:07 shawnChi 阅读(534) 评论(0) 推荐(0) 编辑