怎么理解C++中的类和对象
发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,怎么理解C++中的类和对象,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。c++类的由来(或者说为什么要增加类):我们知道
千家信息网最后更新 2024年11月17日怎么理解C++中的类和对象
怎么理解C++中的类和对象,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
c++类的由来(或者说为什么要增加类):我们知道c语言是面向过程的语言,c++是即面向过程又是面向过程的语言。那么这两个有着什么样的区别和联系呢?
C语言和C++的一大区别
接下来我们利用c语言的struct来说明:
C 语言中,结构体中只能定义变量。 在 C++ 中,结构体内不仅可以定义变量,也可以定义函数。 例如:如果我们用C语言实现一下的功能,那么我们会发现,在struct内我们只能去定义一些变量 的类型,而我们需要的函数反而要去单独去实现
typedef struct Student { char _name[20]; int _age; char _sex[10];}student; void SetStudentInfo(const char* name, const char* sex, int age) {strcpy(_name, name);strcpy(_sex, gender);_age = age; } void print(student *s) { printf("%c:%age-%c", s->_name, s->_age, s->_sex); }
在c++内实现的话是:
// 这里是为了和c语言做出区别所以将函数的定义也直接放到结构体内作为内联函数,如果函数的定义代码很多或者需要调用的次数多建议此处就只进行声明,之后在单独进行定义struct Student { void SetStudentInfo(const char* name, const char* sex, int age) {strcpy(_name, name);strcpy(_sex, gender);_age = age; } void print(student *s) { printf("%c:%age-%c", s->_name, s->_age, s->_sex);//此处为了区别和c语言struct的不同点利用了c语言的输出方法 } char _name[20]; int _age; char _sex[10];};
从上述例子我们可以看出在c++中struct可以包含函数的定义和变量,反观在c语言内struct就只能包含变量。
struct和class的区别
在c++中我们引入一个关键词class来指定指定这种既可以包含变量又可以包含函数声明的类型即为c++的类。struct在c++中也是类但是和class修饰还是有一些区别。我们用上述代码来说明这个区别:
这是struct修饰的类
struct Student { void SetStudentInfo(const char* name, const char* sex, int age); void print(student *s) char _name[20]; int _age; char _sex[10];}
这是class修饰的类
struct Student {public:void SetStudentInfo(const char* name, const char* sex, int age); void print(student *s) private: char _name[20]; int _age; char _sex[10];}
在类中我们保护我们我们的数据,我们引入三种修饰:public
、private
、protected
,这三个关键词代表着不同的权限。
而struct默认的是成员函数和成员变量都是public,而class修饰的话成员函数和成员变量都是必须给予修饰的,一般我们是将成员函数用public修饰而成员变量我们用private修饰。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
语言
函数
变量
c++
成员
C++
结构
过程
不同
代码
关键
关键词
类型
这是
帮助
对象
清楚
接下来
三个
不同点
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库表的格式mdf6
N81软件开发
外派软件开发员怎么样
好的软件开发需要什么学历
数据库安全性答案
华为服务器显示心跳线
海淀区网络技术培训
网络技术与应用第一讲测验
系统测试属不属于软件开发
ipv4dns的服务器和网关
游戏服务器备份时会断网吗
明日之后怎么蹲到最新的服务器
金蝶sql数据库出错
网络安全硬件的前景
记录表存在数据库
服务器 带宽2m
管理咨询数据库
网络服务器检验
杭州软件开发公司需要多少钱
安全数据库的作用
数据库中的utf8
浙江葫芦娃网络技术有限公
qt软件开发 工程保存
两个 表关联删除数据库表
网络安全全景图2022
邮箱软件开发属于无形资产
景安云服务器怎么样
恢复数据库重启服务器后缓慢
ecu 网络安全
泽鹿网络安全