`
deepfuture
  • 浏览: 4350299 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:79580
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:68760
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:101965
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:282209
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:14709
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:66119
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:31485
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45406
社区版块
存档分类
最新评论

c++对象模型(关于STRUCT和CLASS)

阅读更多
1、STRUCT:
可以利用这个关键字实现一些技巧,这些技巧是类所不具备的。
比如可以形成一个空间拥有可变大小的数组。
struct mumble
{
char pc[1];
}
struct mumbel *pmumbl=(struct mumble*) malloc(sizeof(structmumble)+strlen(string)+1);
strcpy(pmumbl->pc,string);
建立一个结构,该结构内的PC成为一个可变字符串,定义了一个MUMBLE的对象后,STRUCT本身和该字符串配置足够的内存。
2、class,把上述的STRUCT改成CLASS,会带来很多问题
(1)能保证出现在一个声明空间内的数据按声明次序处于内存布局,
但不被放置在声明空间的就不能保证排列次序,
class mumble
{
public:
//.....
protected:
//.....
private:
//....
char pc[1];
}
在这里,如果procteced成员放在privated之后,就不能保证PC有足够的空间存放可变字符串。
3、那么把CLASS和STRUCT相结合就可以了吗
struct c_point{...};
class point :public c_point{...};
但vc中对虚函数的继承布局做了一些改变,这样有时候也行不通
4、组合
struct c_point{...}
class point{
public:
operator c_point(){return c_point;}
//....
private:
c_point _c_point;
//....
}
_c_point封装一段内存空间,可以在里面放数据
分享到:
评论

相关推荐

    深度探索模C++对象模型PDF

    C++对象模型(Th e C++ Object Model) 对象模型如何影响程序(How the Object Model Effects Programs) 1.2 关键词所带来的差异(A Keyword Distinction) 关键词的困扰 策略性正确的struct(The Politically ...

    《深度探索C++对象模型》(Stanley B·Lippman[美] 著,侯捷 译)

    本书重点:探索“对象导向程序所支持的C++对象模型”下的程序行为。对于“对象导向性质之基础实现技术”以及“各种性质背后的隐含利益交换”提供一个清楚的认识。检验由程序变形所带来的效率冲击。提供丰富的程序...

    深度探索C++对象模型 超清版

    C++对象模型(Th e C++ Object Model) 对象模型如何影响程序(How the Object Model Effects Programs) 1.2 关键词所带来的差异(A Keyword Distinction) 关键词的困扰 策略性正确的struct(The Politically ...

    传智播客_C++基础课程讲义_v1.0.7

    5.4.1案例:socket库c++模型设计和实现 6 5.4.2案例:计算员工工资 6 5.4.3案例:计算几何体的表面积和体积 6 5.6 C面向接口编程和C多态 6 5.6.1函数类型语法基础 6 5.6.2函数指针做函数参数 6 5.6.3函数指针正向...

    数据结构各种算法实现(C++模板)链表 栈 队的各种操作 图树

    其中,链表、栈和队是数据结构中的三种基本数据结构,图树则是一种常用的数据结构模型。 链表是一种动态分配存储空间的数据结构,每个结点都包含一个数据元素和一个指向下一个结点的指针。链表可以实现插入、删除、...

    程序设计教程 陈家骏等编著

    程序设计教程 --用C++语言实现 ...12.2.3 Visual C++的应用向导(AppWizard)和类向导(Class Wizard) 348 12.3 小结 349 12.4 习题 349 例子索引 351 图表索引 354 参考文献 355 附录一 ASCII字符集及其编码 357

    传智播客扫地僧视频讲义源码

    03_用面向过程和面向对象方法求解圆形面积_类和对象的关系思考_传智扫地僧 04_类中不写成员函数易犯错误模型 05-易犯错误模型-为什么需要成员函数(补充资料)-传智扫地僧 06_课堂答疑类中写成员函数_调用的时才会执行...

    华为瑞星360等公司软件测试工程师面试题.doc

    本文主要讨论了软件测试工程师面试题中的几个重要知识点,包括OSI七层网络结构图、TCP/IP五层结构图、IP协议的定义、交换机和路由器的实现原理、C++中的类和结构体的区别、析构函数和虚函数的用法和作用、全局变量和...

    MFC入门培训手册范本.pdf

    本文档为MFC(Microsoft Foundation Classes)入门培训手册范本,对MFC的基本概念和编程模型进行了详细的介绍。 一、学习MFC所应具备的基础知识 1. Win32程序基础 * API:系统开放出来给程序员调用的函数。 * SDK...

    柔性网类

    该库的明显替代方案是利用对象向量,每个不同的属性集由唯一的struct / class定义。 但是,通过这样做,很难进行可应用于每个属性集的通用过程。 例如,如果您有一组属性来定义由位置,法线和UV属性组成的规则网格...

    MFC的程序框架剖析

    (2)窗口的生命周期和C++窗口类对象的声明周期不是一致的。当一个窗口销毁时,与C++窗口类对象没有关系,它 们之间的纽带仅仅在于这个C++窗口类内部的成员变量m_hWnd,该变量保存了与这个C++窗口类对象相关的哪个窗口...

Global site tag (gtag.js) - Google Analytics