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++对象模型 第0章 导读(译者的话) 第1章 关于对象(Object Lessons) 加上封装后的布局成本(Layout Costs for Adding Encapsulation) 1.1 C++模式模式(The C++ Object Model) 简单对象模型(A Simple...
C++对象模型(Th e C++ Object Model) 对象模型如何影响程序(How the Object Model Effects Programs) 1.2 关键词所带来的差异(A Keyword Distinction) 关键词的困扰 策略性正确的struct(The Politically ...
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++笔记struct和typedef struct彻底明白了
c++面向对象基础二(struct详解)
hash_set c++总结(自定义类型stuct、class)。总结自定义struct、class三个案例。find函数测试,hash_set迭代器。
本书重点:探索“对象导向程序所支持的C++对象模型”下的程序行为。对于“对象导向性质之基础实现技术”以及“各种性质背后的隐含利益交换”提供一个清楚的认识。检验由程序变形所带来的效率冲击。提供丰富的程序...
今天这篇博文主要讲解在C++中关键字struct和class的区别。这篇博文,将会系统的将这两个关键字的不同面进行详细的讲解。 从语法上来讲,class和struct做类型定义时只有两点区别: 1.默认继承权限,如果不指定,来自...
从语法上,在C++中(只讨论C++中)。class和struct做类型定义时... 不能因为学过C就总觉得连C++中struct和class都区别很大,下面列举的说明可能比较无聊,因为struct和class本来就是基本一样的东西,无需多说。但这些
本文中写的都是它们在C++中的异同,而非C 中的,因为在C 中无论是union还是stuct 都没有操作,也没有访问控制的概念。
本程序中定义了一个结构体,其成员有一个union,union中又定义了一个结构体,很好的体现了使用union的方法
一、C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。 struct能包含成员函数吗? 能! struct能继承吗? 能!! struct能实现多态吗?...
在C++中,区分struct与class在C++中的作用,以及使用方法
从语法上,在C++中(只讨论C++中)。class和struct做类型定义时... 不能因为学过C就总觉得连C++中struct和class都区别很大,下面列举的说明可能比较无聊,因为struct和class本来就是基本一样的东西,无需多说。但这些
主要讲述c/c++中struct和typedef struct的区别以及各种用法
本篇文章是对C++中struct与class的区别进行了详细的分析介绍,需要的朋友参考下
C++结构体struct介绍及应用,struct声明,初始化,应用
在网络通讯过程中往往涉及一些有关联的参数传递...对于结构体其实方法挺简单,由于结构体对象在内存中分配的空间都是连续的,所以可以将整个结构体直接转化成字符串发送,到了接收方再将这个字符串还原成结构体就可以了