完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 本帖最后由 tyyhmtyyhm 于 2018-5-12 09:37 编辑
C++类通俗点说—— C结构体复习 核心: C++的类就是对C语言的结构体进行了扩展,C++的结构体可以包含函数! ------------------------------------------------------ 前言 该资料为C++初学者整理,知识层次较低,大神可以路过,当然也可以留下来给我们指点迷津!万分感激! 该资料需要读者具备一定的C语言编程基础! 从今天开始我们就起步做有关C++编程资料的整理,我们也正在学习C++,所以从一个初学者的角度去把握用怎样的切入点能让初学者看得过瘾,学的通透!我们自己呢也从这个过程中去找漏洞,提升编程能力,这将不是一个知识的迁移过程,而是一个初学者与初学者的交流过程,所以我们的资料中有表述不准确的地方,还请读者能够指正!我们万分感激! --------------------------------------------------------------------------- 我们学习C++为什么要复习C语言结构体呢? 在我看过的对C++进行讲述的教材中,开篇往往是两个字“对象”!因为C语言是面向过程的,而C++特色是面向对象!所以大多数书籍最开始就在说面向对象的事情。 但我在最初学习的过程中发现自己对“对象”这个词汇....总是想偏,对这个词汇云里雾里的,什么叫面向对象啊,看了一通没看懂。所以我们先不深究什么叫面向对象。 我们先来略看一下C语言中的结构体。对于这个大家应该是很熟悉的,如果对C语言结构体的概念有模糊,请自行查阅资料。 ----------------------------------------------------- C语言结构体 在C语言编程中,我们定义自己的身高,可以用整型int变量,定义一家人(比如三口人)的身高,可以用int型数组。 如果我们要表示王者荣耀游戏中各个英雄的姓名、身高(单位cm)、体重(单位kg),这三种并不是同一类型的数据,那我们就用到结构体了。 struct hero { unsigned char name[10]; int height; float weight; }; struct hero LuBan; //定义“LuBan”变量 结构体或称结构,就像int、float等基本类型一样,也是一种数据类型,使用户自己定义的,它允许存储不同类型的数据项,就像上面的hero结构体。就像打包封装,把一些有共同特征(上面的身高体重等都属于同一个英雄)的变量封装到内部,通过一定的方法访问和修改这些内部变量。 关于更多的结构体的知识我们这里不多说。 我们在结构体内部定义了一些变量,看到“LuBan”这个结构,我们就能查找到他的身高、体重等数据。 ---------------------------------------------------- 函数 鲁班英雄具有“河豚手雷”这个技能,就像炒菜一样,油、盐、菜、蛋...出锅!这样一个顺序就完成了一道美食,鲁班也是用一个顺序完成了这个技能。左闪、右躲...杀! 这就是一个函数。 一个变量定义了一个英雄的角色性质,一个函数定义了一个英雄的大招使用过程!所以C语言的面向过程很好理解。 这个鲁班我们就可以叫做一个对象!他的身高、体重等这些变量我们称之为“属性”或者“状态”,他具有的大招(能干什么)我们称之为“行为”。 就像鲁班七号,这个英雄有姓名、性别、身高、体重等这些“数量”,也就是变量=属性=状态;他可以吃饭、睡觉、打怪,这些行为=函数。所以,我们就叫C语言中的变量为“属性”或“状态”,C语言中的函数称为“行为”。 ------------------------------------------------------ 从结构到类 在C语言的结构体定义中,我们只是把变量放到了结构体中,而C++的类就是对C语言的结构体进行了扩展,C++的结构体可以包含函数! 举个栗子: struct hero { //属性 unsigned char name[10]; int height; float weight; //行为 void eat() {吃肉!} //仅做说明 void sleep() {站着睡!} void KillMonsters() {使用河豚手雷打怪!} }; //分号 struct hero LuBan; //定义“LuBan”变量 调用: void main() { LuBan.height=150; LuBan.weight=50; LuBan.KillMonsters(); } “英雄”这个结构体的成员,与C语言不同,我们既有变量也有函数,变量和函数都属于该结构体,变量叫成员变量,函数叫成员函数。C语言的结构智能描述一个对象的属性,不能描述一个对象的行为。 在面向对象的程序设计中,对象具有属性(状态)和行为,属性保存在成员变量中,行为通过成员方法(函数)来实现。成员方法又是什么? 其实方法和函数可以理解为一回事。只是在C++中“函数”被称之为“方法”。 ----------------------------------------------------- C++类的定义 前面看明白了,这个地方就不多说话! 将结构体定义中的关键字struct换成class,就得到了C++中类的定义。 class Hero //类名习惯首字母大写 { //属性 unsigned char name[10]; int height; float weight; //行为 void eat() {吃肉!} //仅做说明 void sleep() {站着睡!} void KillMonsters() {使用河豚手雷打怪!} }; //分号 用类定义的就叫对象。 Hero LuBan; //定义了一个Hero类的对象LuBan 2017年12月29日13:07:24 补充内容 (2018-8-11 12:17): 欢迎关注微信公众号:依法编程 获取更多资料!` |
|
相关推荐
|
|
欢迎关注微信公众号:依法编程
获取更多资料! |
|
|
|
|
|
787 浏览 0 评论
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
1476 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1216 浏览 0 评论
900 浏览 0 评论
963 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11866 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 01:16 , Processed in 0.645487 second(s), Total 68, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号