一種C仿真C++對象模型的方法

原创 2004年03月18日 12:36:00

一種C仿真C++對象模型的方法

作者:系统  日期:2003-02-28  阅读:101


一種C仿真C++對象模型的方法<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

 

1.提案綱要﹕

2.現況

當前我公司使用的 c 仿真 c++ 的方法是在一個對象中加入一些“函數類型的成員變量” ﹐這些大家都是很清楚的。然而當前的這種模擬方法有如下一些缺點﹕

 

1.               佔用空間大﹕同一類別的多個對象, 將保有同一個函數指針的多個副本. 如一個桌面上如有 10 button , 這些button 所有成員函數的指針, 將佔有 200 個字節的空間.而實際上只需要 20 個字節.----PBUTTON 5個成員函數.

2.               每次創建對象時都要把所有這些函數指針拷貝到對象中. 增加了對象創建的時間.

3.               增加成員函數,該類對象及其派生類對象的佈局會發生變化,成員的偏移地址會有變化.-----如果把新成員函數放在最後,則僅有其派生類的佈局會發生變化.

4.               要增加對象的動態類型識別等其他功能很困難,幾乎不可能.

5.               這種方法模糊了對象的概念. 成員函數對於同意類對象的每個實例都是相同的.然而當前的這種模擬方法允許客戶程序修改一個對象的成員函數.而非的成員函數. 概念模糊了,人就容易翻一些錯誤.

6.               實現虛函數時, 客戶需要知道基類的同名函數是那一個.雖然採用規範的命名方法可以避免記憶這些函數名, 但是, 如此調用“基類方法”, 仍然不很方便。

 

4.創意內容:

同一個類的所有對象, 只有一份函數指針的副本.對象及類的佈局如(1);

 

系統的所有對象大體上分為兩種;普通對象和類對象,一個普通對象是一個類對象的實例;類對象必定先於普通對象購建.最好的實現方法就是把類對象聲明為全局的.類對象的所有成員都必須初始化.每種類對象只有一個.並且是常數.

 

所以﹐可以把類對象聲明為全局常數變量。

 

机器人仿真 软件 V-REP 入门教程 (一)简介

机器人仿真软件V-REP入门教程 可以仿真小车 工业机器人 而且有开源免费版本 功能强大 被国外研发人员广泛使用...
  • liang890319
  • liang890319
  • 2016年09月23日 17:08
  • 8624

离散事件仿真简例——银行排队系统

为什么要仿真 说起为什么需要仿真,理由可以列举很多,简要来说,它是在纯数学建模和实际系统的优缺点之间的一个折中。相对数学模型来说,仿真不需要高深的数学技巧,也不需要作过多的简化和假设,并且在求解复杂...
  • loveRooney
  • loveRooney
  • 2013年09月09日 20:39
  • 6790

NS3网络仿真(1):开发环境搭建

快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息1.1    安装基本模块1.1.1  安装Python出于对兼容性的考虑,在此选择python-2.7...
  • lights_joy
  • lights_joy
  • 2015年07月09日 19:25
  • 5886

一种基于三维直方图的改进C_V模型水平集图像分割方法

  • 2009年04月25日 20:29
  • 949KB
  • 下载

MAXplus2是一款应用于硬件编程的编程软件,本文件教你快速掌握其编程,仿真方法。 [turboc++.zip] - 提供一种中文版的C语言或C++的编程工具(2)

  • 2009年06月20日 23:00
  • 14MB
  • 下载

C++中建立对象间消息连接的一种系统方法——回调函数

C++中建立对象间消息连接的一种系统方法——回调函数 作者:项飞 用过C++进行过面向对象程序设计的用户都知道,程序中的对象很少单独存在。不考虑对象间的相互作用几乎是不可能的。所以,标识对象间的关...
  • arhaiyun
  • arhaiyun
  • 2012年09月04日 10:01
  • 2643

C++中建立对象间消息连接的一种系统方法——回调函数

C++中建立对象间消息连接的一种系统方法——回调函数 作者:项飞 用过C++进行过面向对象程序设计的用户都知道,程序中的对象很少单独存在。不考虑对象间的相互作用几乎是不可能的。所以,标识对象间的关...
  • taozhiying520
  • taozhiying520
  • 2016年05月25日 21:15
  • 311

C++中建立对象间消息连接的一种系统方法——回调函数

用过C++进行过面向对象程序设计的用户都知道,程序中的对象很少单独存在。不考虑对象间的相互作用几乎是不可能的。所以,标识对象间的关系或建立对象间的消息连接是面向对象程序设计的一项重要任务。本文着重从C...
  • zhuralll111
  • zhuralll111
  • 2014年06月24日 13:06
  • 368

C++插件机制的一种实现方法(对象工厂)

背景 在我们的实际开发过程中,经常会开发一些插件,比较常见的例子如:给你 DataHandler,它是一个抽象类,提供一些数据操作的接口,然后插件开发者就需要继承DataHandler,并按需求...
  • lclflash
  • lclflash
  • 2013年04月26日 22:49
  • 785

百度面试题 c++ 实现引用类型与被引用的对象分离的一种方法

这个问题想了很久,一般情况下,一个引用变量一旦指定被引用变量后,是不能作为另一个变量的引用的,这也是为什么人家喜欢将引用与int * const p 等价的原因,即引用和指针常量有相同的性质,所以p不...
  • wanwenweifly4
  • wanwenweifly4
  • 2011年09月01日 20:29
  • 1567
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一種C仿真C++對象模型的方法
举报原因:
原因补充:

(最多只允许输入30个字)