C++在struct与class差异

在C++中,既能够用structkeyword进行类的定义,也能够用classkeyword进行类的定义,那么这两者究竟有什么差别呢?

唯一的一点差别是:struct和class的默认訪问权限不一样。

假设我们使用structkeyword,则定义在第一个訪问说明符之前的成员是public的;相反,假设使用的是classkeyword,则这些成员是private的。

我觉得能够这样理解:structkeyword是C风格的类型定义符,class是C++风格的类型定义符,我们知道面向对象的C++具有更好的封装特性,因此会默认将其成员定义为private的。



參考书籍:《C++ Primer 中文版(第5版)》

版权声明:本文博客原创文章。博客,未经同意,不得转载。

时间: 2024-11-09 01:59:07

C++在struct与class差异的相关文章

Linux的system()和popen()差异

Linux的system()和popen()差异 1. system()和popen()简介 在linux中我们可以通过system()来执行一个shell命令,popen()也是执行shell命令并且通过管道和shell命令进行通信. system().popen()给我们处理了fork.exec.waitpid等一系列的处理流程,让我们只需要关注最后的返回结果(函数的返回值)即可. 2. system().popen()源码 首先我们来看一下这两个函数在源码(伪代码)上面的差异. int s

差异更新

#include <iostream> //下面说的是在服务器差异脏标记,不管在想客户端还是在数据库中经常用到的一种方法 //由于其实直接拿为进行操作,所以速度是非常快的,也许刚开始不太好理解,但只要熟悉之后就非常好用 //对于包而言如果Update包只改变一项你把整个结构体都发过去会大大增加网络带快,现在基本都走差异更新 enum UpdateAtt { eUpdate1, eUpdate2, eUpdate3, eUpdate4, eUpdate5, eUpdate6, eUpdate7,

enum,struct,union类型使用和长度

VC,C++ Builder和lcc三个编译器 间枚举类型enum长度的情况. 各种C编译器默认的字节对齐数不一致,要写通用的代码,经常就是使用 #pragma pack(1) ... #pragma pack() 来使编译器以单字节对齐. 今天在bcb5中调用vc6的dll时出现错误,但在VC中调用dll却很正常,说明很有可能是编译器之间的差异造成.仔细debug后发现bcb和vc的枚举类型长度不一样,即便使用了#pragma pack(1)编译开关. 如以下程序: /*-----------

.NET中struct与class的区别

在.net中的struct与class有很多相似之处,比如可以直接new,对于成员可以直接XX.field,以至于有不少程序员在用时,将其混在一起,分不清有何区别.这两者有何区别呢? 1.类型不同 我们先来看一段代码 static void Main(string[] args) { TypeDemo(); Console.ReadLine(); } // Reference type (because of 'class') class SomeClassRef { public Int32

struct内存对齐1:gcc与VC的差别

struct内存对齐:gcc与VC的差别 内存对齐是编译器为了便于CPU快速访问而采用的一项技术,对于不同的编译器有不同的处理方法. Win32平台下的微软VC编译器在默认情况下采用如下的对齐规则: 任何基本数据类型T的对齐模数就是T的大小,即sizeof(T).比如对于double类型(8字节),就要求该类型数据的地址总是8的倍数,而char类型数据(1字节)则可以从任何一个地址开始.Linux下的GCC奉行的是另外一套规则:任何2字节大小(包括单字节吗?)的数据类型(比如short)的对齐模

差异演化

差异演化和昨天实现的PSO很类似,都属于优化算法. 算法步骤: 1.设定种群个体个数和需要迭代的次数.当然也可以设定条件,然后判断是否停止迭代. 2.定义交叉概率CR,个体有一定概率进行变异,如果变异则进行第3步,如果不变异则下一代个体和当前个体一样. 3.在种群中随机选出三个互不相同的个体进行变异,变异公式如下(有博士论文总结了一大堆变异公式): Xi,g+1=Xr1,g+F(Xr2,g-Xr3,g) 其中X是种群中个体特征向量,这里就是x和y坐标.g是种群的代数.i代表当前个体,r1,r2,

【BZOJ 3238】 3238: [Ahoi2013]差异(SAM)

3238: [Ahoi2013]差异 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 3047  Solved: 1375 Description Input 一行,一个字符串S Output 一行,一个整数,表示所求值 Sample Input cacao Sample Output 54 HINT 2<=N<=500000,S由小写英文字母组成 Source [分析] 这题先把sigma len 加上. 然后考虑一下减掉的是什么. 对于每个子

fprintf与fwrite函数用法与差异

在C语言中有两个常见的保存文件的函数:fprintf 与 fwrite.其主要用法与差异归纳如下: 一.fprintf函数. 1.以文本的形式保存文件.函数原型为 int fprintf(FILE* stream,const char* format,[argument]),用法类似于printf函数,返回值是输出的字符数,发生错误时返回一个负值. 2.对应的读取函数为fscanf().函数原型为int fscanf(FILE* stream,const char* format,[argume

基于OpenCV2:实现7种差异描述算子

最近在一些机器视觉群中的一些小伙伴们多次问到opencv是否集成了LBP算法,据我了解opencv没有单独的LBP特征描述算法实现,都是和一些应用结合,如人脸识别,检测等,这些都是一些论文的研究成果,针对于特定的应用,这对于想将LBP特征描述用到自己的应用中的伙伴来说,或许不太方便.opencv也没有一个单独的特征描述这样的一个module,这或许限制了使用opencv的灵活性,而且个人体会视觉问题最终根本的问题都落在了特征描述这样的一个最基本的问题,包括近几年很火的深度学习,其解决的最根本问题