本文主要讲解C++对象模型中的单继承类对象模型,分为有虚函数表和无虚函数表两种类型。
一、无虚函数和虚继承类(无虚函数表)
1.1类Point1D、Point2D、Point3D的UML结构图
1.2类Point1D、Point2D、Point3D的代码定义
NonVirtualDeriveClass.cpp.cpp
#include <iostream>
using namespace std;
class Point1D
{
public:
Point1D(int x) : x(x) {
}
protected:
int x;
};
class Point2D : public Point1D
{
public:
Point2D(int y) : Point1D(1), y(y) {
}
protected:
int y;
};
class Point3D : public Point2D
{
public:
Point3D(int z) : Point2D(2), z(z) {
}
protected:
int z;
}