引言
现在有一个 Point
类,声明如下:
class Point {
public:
Point(float xval);
virtual ~Point();
float x() const;
static int PointCount();
protected:
virtual ostream& print(ostream &os) const;
float _x;
static int _point_count;
};
这个类在机器上是通过什么模型来表示的呢?下面就介绍三种不同的实现方式。转载请注明出处:单刀土豆
1. 简单对象模型
简单对象模型名副其实,十分简单。在简单对象模型中,一个 object
是由一系列 slots
组成,每个 slot
相当于一个指针,指向一个 member
, memebers
按照声明的顺序与 slots
一一对应,这里的 members
包括 data members
和 function members
。如果将简单对象模型应用在 Point Class
上,结构图如下:
-
优点:十分简单,降低了编译器设计的复杂度。
-
缺点&