当前位置: 首页 > news >正文

建筑效果图网站有哪些电商ui设计是什么意思

建筑效果图网站有哪些,电商ui设计是什么意思,中华室内设计协会,easyphp wordpressC 对象模型 C Object Model 文章目录 C 对象模型 C Object ModelC语言的数据及函数C的类C对象模型 C语言的数据及函数 C语言中,数据和函数是分开声明的。 数据 typedef struct point2d {float x;float y; } Point2d;函数 打印Point2d的数值 void Point2d_print…

C++ 对象模型 C++ Object Model

文章目录

  • C++ 对象模型 C++ Object Model
    • C语言的数据及函数
    • C++的类
    • C++对象模型

C语言的数据及函数

C语言中,数据和函数是分开声明的。

  • 数据
typedef struct point2d
{float x;float y;
} Point2d;
  • 函数

打印Point2d的数值

void Point2d_print(const Point2d * pd)
{printf("(%f, %f)", pd->x, pd->y);
}

C++的类

同样实现C语言的功能,C++中可以进行如下定义

class Point2d
{Point2d(float x, float y):m_x(x), m_y(y){}print(){printf("(%f, %f)", m_x, m_y);}private:float m_x;float m_y;
};

问题:Point2d从C到C++,内存布局上有啥变化呢?

答案是没有变化。
本例中,C++ 中的数据成员和C中一样,不一样的是C++中多了一个非静态成员函数print,但非静态成员函数与数据成员是分离的,并不占用类的大小。也就是说print函数的调用实际为print(Point2d* pd),就如同C语言的Point2d_print调用。

C++内存布局的额外负担有virtual引起,主要包好虚函数(virtual function)和虚基类(virtual base class)。

C++对象模型

C++中,
类数据成员有两种:静态(static) 和 非静态(nonstatic)
类成员函数有三种:静态函数(static)、非静态函数(nonstatic) 和 虚函数(virtual)

C++对象模型:

  1. 非静态(nonstatic)数据成员在类内部
  2. 静态(static)在类外部
  3. 静态函数(static)和非静态函数(nonstatic)在类外部
  4. 虚函数(virtual):
    a. 每个类产生一堆指向虚函数的指针,放在虚表(virtual table, vtbl)
    b. 每个类对象添加一个指向虚表的指针(vptr)。
    c. 每个类的type_info(用于支持RTTI)也由虚表指定,一般位于第一个slot处。
class Point2d
{Point2d(float x, float y):m_x(x), m_y(y),m_pointCount(2){}virtual ~Point2d(){}static int getPointCount(){return m_pointCount;}print(){printf("(%f, %f)", m_x, m_y);}private:float m_x;float m_y;static int m_pointCount;
};

上述代码的C++对象模型如下

+---------------+
|  float m_x;   |            virtual table
+---------------+
|  float m_y;   |          +---------------+
+---------------+          |               |      +--------------------+
|  vptr Point2d +---------->               +------> type_info(RTTI     |
+---------------+          +---------------+      +--------------------+|               |      +--------------------+Point2d pt2;            |               +------> Point2d::~Point2d()|+---------------+      +--------------------++-------------------------------------+       +------------------------------------+
| static int Point2d::m_pointCount    |       | Point2d::Point2d(float x, float y) |
+-------------------------------------+       +------------------------------------++-------------------------------------+       +------------------------------------+
| static int Point2d::getPointCount() |       | Point2d::print()                   |
+-------------------------------------+       +------------------------------------+

Reference:

  1. 深度探索C++对象模型
http://www.yayakq.cn/news/74654/

相关文章:

  • 广州市花都区网站建设公司优化设计四年级语文下册答案
  • 国外服务器 网站进行经营性活动关于申请网站建设维护经费
  • 网站优化的目的龙华在深圳算什么档次
  • 单页网站快速收录xammp如何按wordpress
  • 网站管理员密码忘记新手如何免费建网
  • 公司建站模版wordpress中文标签打不开
  • 外包公司做网站建筑网站大全免费
  • 网站开发买什么书wordpress指定id文章
  • 企业手机端网站源码下载wordpress在哪里
  • asp.net网站开发实例教程这些网站涵盖了不同的主题和类型
  • 打开百度网站建设山西网站建设公司哪家好
  • 哪些国家网站无须备案网站开发 兼容模式
  • 集团网站建设价格如何建立公司网页
  • 响应式网站建设论文装饰公司网站模版
  • 建好的网站在哪里linux wordpress配置
  • 山东省住房和城乡建设部网站张家界网络营销
  • 网站开发用什么写哪里有网站直播做美食的
  • 乐清定制网站建设广西圣泰建设工程有限公司网站
  • 做网站必须需要服务器嘛百度信息流开户多少钱
  • 网站如何提交关键词域名备案要求
  • 绿色 网站 源码多用户购物商城源码
  • 连锁酒店网站方案上海传媒公司李闪闪身价
  • 网站多种语言是怎么做的wordpress五分钟建站
  • 网站域名缴费十年阿米纳网站建设
  • wordpress网站如何播放视频网站建设属于什么
  • 网站权限查询互联网广告行业
  • 做销售的 都有什么网站别人的域名解析到了我的网站上
  • 怎么搭建自己的网站挣钱wordpress搭建问题
  • c 网站建设设计报告广东网站建设seo优化
  • 建站saas鹿泉城乡建设局网站