来自:http://blog.sina.com.cn/s/blog_48f587a80100k630.html

C++中的struct是对C中struct进行了扩展,它不单是一个包含不同数据类型的数据结构了,它还有其他很多的功能,例如:

1. 声明变量和方法

2. 继承

3. 实现多态

struct与class之间的两点区别:

区别一:默认的继承访问权限

struct继承时默认的是public继承,class默认的是private,这也就是为什么在C++中实现继承时总是写成下面这种形式的原因(明确指定是public继承):

 class Affect1 : public Affect{}

struct继承时:

 struct A
{
char a;
} struct B : A
{
int n;
}

上述代码中结构体B对于A的继承是public。

此外,class也能继承struct,struct也能继承class,那么继承是public还是private的取决于子类,例如:

 struct A{};
class B : A{}; //子类是class,private继承
struct C : B{}; //子类是struct,public继承

区别二:对于自身数据默认的访问权限

struct默认的数据访问权限是public的,而class对成员变量默认的访问权限是private的。

总结:struct更适合看成一个数据结构的实现,而class更适合看成一个对象的实现。

C++学习基础十三——struct和class的区别的更多相关文章

  1. C++学习基础二——指针与引用的区别

    一.指针: (1)如果对指针进行解引用操作 赋值,改变的是指针所指向对象的值:(2)如果不对指针进行解引用操作 赋值,则改变的是指针本身的值:(3)const指针本身的值不能修改,但是const指针所 ...

  2. 20165310 学习基础和C语言基础调查

    学习基础和C语言基础调查 做中学体会 阅读做中学之后,了解老师关于五笔练习.减肥.乒乓和背单词的经历,不禁联想到自己学古筝的经历. 成功的经验 兴趣 我其实小时候学过一段时间古筝,但是那时候是因为父母 ...

  3. 【IOS学习基础】NSObject.h学习

    一.<NSObject>协议和代理模式 1.在NSObject.h头文件中,我们可以看到 // NSObject类是默认遵守<NSObject>协议的 @interface N ...

  4. java之jvm学习笔记十三(jvm基本结构)

    java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成 ...

  5. 学习基础和C语言基础调查

    学习基础和C语言基础调查 一.一种比大多数人(超过90%以上)更好的技能 说句实话,我还没有那种特别特别自信的.说我能拿得出手的.所谓能超过百分之九十以上的人的技能.毕竟人外有人,天外有天. 姑且算上 ...

  6. 20165305 学习基础和C语言基础调查

    学习基础和C语言基础调查 <优秀的教学方法---做教练与做中学>心得 在<优秀的教学方法---做教练与做中学>文章中又一次提到了"做教练"这一学习方法,因为 ...

  7. 20165306学习基础和C语言基础调查

    20165306学习基础和C语言基础调查 技能学习心得 我认为兴趣.责任感.毅力对技能的获得非常重要. 因为我从小五音不全.肢体不协调,所以看春晚等节目的时候会把更多的关注点放在主持人身上.小时候觉得 ...

  8. 20165308 学习基础和C语言基础调查

    学习基础和C语言基础调查 技能学习 我认为给学生具体的, 能实践的, 能马上看到因果关系的教材和练习, 是激发学生兴趣, 好奇心, 求知欲的好方法. -- 引用自<做中学> 老师博客中注重 ...

  9. 20165227 学习基础和C语言基础调查

    学习基础和C语言基础调查 技能学习经验和感悟 你有什么技能比大多人(超过90%以上)更好? 如果非要说出来一个的话,那就是篮球了.从热爱篮球,到热爱打篮球,经历挫折阻碍,不断反思学习,一步一步地向前迈 ...

随机推荐

  1. 无法连接到 OPC服务器[无此类接口支持(异常来自HRESULT:0x80004002(E_NOINTERFACE))]

    来源:https://stackoverrun.com/cn/q/10400663 无法连接到ABB Freelance OPC服务器[无此类接口支持(异常来自HRESULT:0x80004002(E ...

  2. 学习java字符串编码总结

    http://blog.csdn.net/wikijava/article/details/5571953 系统不同部分的编码方式转换

  3. R语言数据挖掘相关包总结-转帖

    与数据挖掘有关或者有帮助的R包和函数的集合. 1.聚类 常用的包: fpc,cluster,pvclust,mclust 基于划分的方法: kmeans, pam, pamk, clara 基于层次的 ...

  4. "上市时间:&nbsp;2014&#24180;&#31179;&#20908;&#23395;" unicode十进制编码转中文

    "上市时间: 2014年秋冬季" unicode十进制编码转中文 System.Web.HttpUtility.HtmlDecode(tmp);

  5. appium 启动了2个端口,但是只有一台机器在跑的 问题解决 (还没试,记录在此)

    appium启动了2个,端口分别设置为了4723 4725, 在测试类中也分别指定了设备和端口,用device来指定.然而每次都是运行一个设备. 后来添加了udid这个来指定才发现可以.deviceN ...

  6. [转][JS]修改链接中的参数

    转自:https://blog.csdn.net/weixin_40845192/article/details/81561644 /** * url地址修改 * @param url 待修改url ...

  7. Zabbix 添加主机

    #1 #2

  8. 【PHP】五分钟教你编写一个实时弹幕网站

    由于博主是个忠实的英雄联盟粉丝,所以经常观看一些明星大神的直播.而一谈到直播,肯定会看到满屏幕飘来飘去的弹幕.那么问题来了,这些视频弹幕网站如何做到实时同步的?PHP如何开发一个类似的网站? 首先要搞 ...

  9. typescript接口扩展、接口的继承

    //接口扩展:接口可以继承接口 // interface Animal{ // eat():void; // } // interface Person extends Animal{ // work ...

  10. Xmanager远程连接CentOS7

    上周例会,又被说了一通,Xmanager远程连接的文档没写?服务没搭建?心想这都有VNC了,为毛一定要弄这个啊?!!但是,我还是在今天给弄了,╮(╯▽╰)╭没人权.搭建完尝试用了下,感觉吧,也不咋地啊 ...