热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深入解析C/C++中结构体与类的异同及应用场景

目录structclassstruct和calss的区别C和C中struct的区别structstruct是描述一个数据结构的集合,像一周有七天,

目录

 

struct

class

struct和calss的区别

C和C++中struct的区别



 


struct

        struct是描述一个数据结构的集合,像一周有七天,你可以吧一周看成是一个结构体,然后在结构体里面定义一个数组来存放这个七天。在C语言中,定义结构体后,如果要使用该结构体定义结构体变量的话,需要在定义的前面加上struct关键字,或者通过typedef取别名,再用结构体名称进行变量定义。而在C++语言中可以直接通过结构体名称对结构体变量进行定义。在C++中包含了三种访问权限,包含public、private、protected,在C语言中只有public权限,默认没设置权限访问时是为public权限。像下面代码中的day数组的访问权限就是public。


/* 在C语言中的结构体 */
struct Week{int day[7];
};// 第一种定义方式:C语言的风格
struct Week week1; // 定义一个结构体变量// 第二种定义方式:C语言的风格
typedef struct Week{int day[7];
};Week week1; // 定义一个结构体变量/* 在C++语言中的结构体 */struct Week{int day[7];
};Week week1; // 直接用结构体名称来定义变量

class

        class类是描述对一个对象进行封装,例如一个人,他有鼻子、眼睛、嘴巴等等属性,并且他会说话、走路、眨眼睛等等方法,将这些属性全部封装成一个框,这个框叫做类。类有利于我们程序的开发和后期的维护。在C语言中没有类的概念,C++才有类,对类的定义如下代码,类包含了三种访问权限,分别是public、private、protected。默认的属性是private权限,像下面的hands属性就是private权限。

class Person{int hands; // 类属性手,默认为private权限public:Person(){} // 类构造函数~Person(){} // 类析构函数private:int mouth; // 类属性嘴巴int eye; // 类属性眼睛public:void Speaking(); // 类方法行为 void Walking(); // 类方法行为 protected:};

struct和calss的区别


类别structclass
含义定义一个数据结构集合一个的对象的封装
默认访问权限publicprivate
继承能(默认公有继承)能(默认私有继承)
包含成员函数
实现多态
定义模板参数不能

 


C和C++中struct的区别

关于C++的模板,后面小编专门写一篇来解释一下。

a84592e1a1cd4901bf64e6824ba72e81.png

关注微信公众号了解更多

 

 

 


推荐阅读
author-avatar
121016710_ddc112_531_661_325
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有