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

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++对象模型

    深度探索C++对象模型 第0章 导读(译者的话) 第1章 关于对象(Object Lessons) 加上封装后的布局成本(Layout Costs for Adding Encapsulation) 1.1 C++模式模式(The C++ Object Model) 简单对象模型(A Simple...

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

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

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

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

    C_C++中typedef_struct和struct的用法

    C_C++中typedef_struct和struct的用法。

    c++笔记struct和typedef struct彻底明白了

    c++笔记struct和typedef struct彻底明白了

    c++面向对象基础二(struct详解)

    c++面向对象基础二(struct详解)

    hash_set c++总结(自定义类型struct、class)

    hash_set c++总结(自定义类型stuct、class)。总结自定义struct、class三个案例。find函数测试,hash_set迭代器。

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

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

    C++中关键字Struct和Class的区别

    今天这篇博文主要讲解在C++中关键字struct和class的区别。这篇博文,将会系统的将这两个关键字的不同面进行详细的讲解。 从语法上来讲,class和struct做类型定义时只有两点区别: 1.默认继承权限,如果不指定,来自...

    EDA/PLD中的如何在C++中struct与Class的的区别

    从语法上,在C++中(只讨论C++中)。class和struct做类型定义时... 不能因为学过C就总觉得连C++中struct和class都区别很大,下面列举的说明可能比较无聊,因为struct和class本来就是基本一样的东西,无需多说。但这些

    C++ 中的union、struct 和class 的异同

    本文中写的都是它们在C++中的异同,而非C 中的,因为在C 中无论是union还是stuct 都没有操作,也没有访问控制的概念。

    union和struct混合使用C++源码

    本程序中定义了一个结构体,其成员有一个union,union中又定义了一个结构体,很好的体现了使用union的方法

    C++中struct和class的区别

    一、C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。  struct能包含成员函数吗? 能!  struct能继承吗? 能!!  struct能实现多态吗?...

    Desktop_struct与class的区别_

    在C++中,区分struct与class在C++中的作用,以及使用方法

    如何在C++中struct与Class的的区别

    从语法上,在C++中(只讨论C++中)。class和struct做类型定义时... 不能因为学过C就总觉得连C++中struct和class都区别很大,下面列举的说明可能比较无聊,因为struct和class本来就是基本一样的东西,无需多说。但这些

    C/C++语法知识:typedef struct 用法详解

    主要讲述c/c++中struct和typedef struct的区别以及各种用法

    深入C++中struct与class的区别分析

    本篇文章是对C++中struct与class的区别进行了详细的分析介绍,需要的朋友参考下

    C++结构体struct

    C++结构体struct介绍及应用,struct声明,初始化,应用

    C/C++网络传输struct类型数据

    在网络通讯过程中往往涉及一些有关联的参数传递...对于结构体其实方法挺简单,由于结构体对象在内存中分配的空间都是连续的,所以可以将整个结构体直接转化成字符串发送,到了接收方再将这个字符串还原成结构体就可以了

Global site tag (gtag.js) - Google Analytics