栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

1.1 C++对象模式

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

1.1 C++对象模式

C++对象模式

C++中有两种数据成员,static和nonstatic;以及三种成员函数:static,nonstatic,virtual

class Point {
public:
    Point(float xvlal);
    virtual ~Point();

    float x() const;
    static int PointCount();

protected:
    virtual ostream& print(ostream &os) const;
    float _x;
    static int _point_count;
};

一个object是一系列的slots,每个slot指向一个members,members按其声明顺序,各被制定一个slot。members本身并不放在object之中。只有指向member的指针才放在object内

表格驱动模型

另一种对象模型是把所有与members相关的信息抽出来,放在一个data member table和一个member function table之中,class object``本身则指向这两个表格的指针。membe function table是一系列的slots,每个slots,每个slot指出一个member function;Data member table则直接持有data本身;

C++对象模型

在此模型中,非静态数据成员被置于每个class object内,静态数据成员则被存放在个别class object之外。静态和非静态成员函数也被放在个别的class object之外。虚函数则以两个步骤支持

    每个class产生出一堆指向虚函数的指针,放在表格之中,这个表格称为virtaual table每个class obect被安排一个指针,指向相关的virtual table
对象模型如何影响程序

不同的对象模型,会导致“现有的程序代码必须修改”以及“必须加入新的程序代码”

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/743814.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号