温馨提示:本站源码资源提供给大家学习研究借鉴美工之用,请勿用于商业和违法用途,无任何技术支持!
今天通过腾讯课堂学习了由王桂林老师主讲的C++,从中也是受益匪浅,坚持从头开始,一点一滴学好C++。
一、C++的背景,也没啥好记的了,这样的介绍还是很多的。
二、C++的地位,C++(包括C)从诞生到现在的几十年里一直保持在前三的位置,因此,在很长的一段时间内,C++仍然会坚挺着
三、应用领域,C++的应用领域十分的广泛,可以这样说,在很多IT领域中都可以看到它的身影。
四、C++对C的扩展
1.类型的增强,在C++中不能再玩“明修栈道,暗度陈仓”的把戏了,例如在C语言中虽然const int的值是不能被改变的,但是却可以通过指针操作,改变其中的值,不过这样的操作在C++中是不可以进行的。
2.C++中增加了bool类型,虽然看上去是然并卵(在C中是用0和1表示),这样的操作,完全可以使用枚举(enum)实现
3.真正的枚举(enum),这样说的原因是,虽然C中也有枚举,但是在使用的时候,即使赋值不再枚举的范围内,但是依然是可以执行的,但是在C++中,枚举的值必须在枚举的范围内
4.在C语言中,表达式是不能被赋值的,但是在C++中某些表达式是可以被赋值的(这个跟运算符的重载有关),例如int a, b=5;(a=b)=100;在C中就是报错的,但是在C++中就能编译通过。
五、输入与输出(cin和cout)
1.cin、cout(类对象)与scanf、sprintf(函数)具有相同的功能
2.如果定义一个数组,在用这两种输入方式进行输入的时候,都是不安全的,不能保证输入的长度,例如 char name[30]; 用cin>>name;或者使用scanf("%s",name);的时候,如果输入的字符长度超过30个,那么程序就会出错,不过可以使用fgets(name, 30, stdin);这样就指定最多只能接收29个字符(第30个为'\0'),从而保证了安全性。
3.虽然通过接收指定长度的操作可以保证程序的安全性,但是这样可能并不能满足用户的需求,所以C++就创造了string,如果将char name[30];改成string name;那么,这个时候就可以不用考虑因为输入过长而导致程序崩溃的问题了(其实是有一个长度的,不过那个长度已经很大很大了,可以通过name.max_size(),这个函数查看),不过这个时候只能使用cin>>name进行输入,而不能使用scanf这个函数了。
4.格式输出的问题,在C语言中,用pringf进行格式输出,可以通过简单的方法,达到丰富的显示效果,在C++中想要达到相同的效果(如果是使用cout)那还是比较麻烦的。
六、函数重载
1.重载:通俗的说就是同一个东西,表示不同的意思,这个不同的意思是由当时的语境来决定的(一词多义)
2.重载的规则:函数名相同,函数的参数列表不同(类型、个数、顺序)
3.匹配原则:a.严格匹配,找到则调用 b.如果严格匹配找不到,通过隐式转换寻求一个匹配,找到则调用
其中int在向long 和 double进行隐式转换,double 向int 和 float进行隐式转换的时候会出现二义性(ambiguous)
4.返回值的类型不能作为函数重载的条件
5.函数重载实现的原理:重载的底层进行了轻轧(name mangling)的操作
轻轧操作在定义和调用的时候被使用(要么都轻轧,要么都不要轻轧,所以C的库中都使用了extern "C")
6.操作符的重载(基本实现),例如重载"+"加法,使用operator+(其余的操作跟函数一样)
七、默认参数(default parameters)
1.单个参数,在函数中直接使用默认值就好
2.多个参数,默认从右往左,中间不能跳跃
3.实参的个数+默认的参数>=形参的个数
4.在设计时,如有重载和默认参数发生冲突时应注意避免这样的情况,两者不能并存。
例如:void test_fun(int a, int b=2){printf("fun1");}
void test_fun(int a){printf("fun2");}
在这样的情况下,如果调用 test_fun(2);的时候就会出现”二义性"的错误。
注:在只用C++的时候,尽量不要使用指针,字符数组,强制类型转换
上一篇:Linux视频RHCE视频RHCSA视频系统运维培训教程共58课时包含系统信息、用户管理 shell基础、系统
下一篇:轩辕IT培训 Linux C++ 远程全科班 Boost_ACE[价值500元]
郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
我们不承担任何技术及版权问题,且不对任何资源负法律责任。
如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。
如有侵犯您的版权,请给我们来信:cainiaovip8@qq.com,我们会尽快处理,并诚恳的向你道歉!
[项目营销] 视频号变现全攻略:AI创作+带货技巧,从0到1实现流量变现
[项目营销] 直播带货实战教学:脚本撰写+口播技巧,掌握年入百万的核心秘诀
[PHP源码] 工地记账系统PHP源码自适应手机端界面 代码全开源,支持二次开发
[wp模板] WordPress主题–Rey v3.1.6 破解版下载,WooCommerce 主题
[手游源码] 稀有砍树开箱手游【魔道修仙代金券内购多区第三季】最新整理Ubuntu手工服务端+安卓苹果双端+CDK授权后台+详细搭建教
[手游源码] 战神引擎传奇手游【皓月合击大背包[白猪3]】最新整理WIN系特色服务端+安卓苹果双端+GM授权后台+详细搭建教程
[端游源码] [端游] 王者世界/一键游戏端/客户端/GM工具/视频教程
[手游源码] [手游] 九州谕/H5/一键游戏端/手工端/平台币内购/管理后台/授权后台/安卓/配套教程
[端游源码] 端游《神泣V13.0最新稳定版》 win一键启动版 单机版 带GM工具命令
[手游源码] 横版闯关手游【境界·死神激斗】最新整理单机一键即玩镜像端+Linux手工服务端+网页注册+GM授权后台+安卓苹果双端+详
[手游源码] XO三端引擎传奇手游【1.76天龙复古小极品版】最新整理Win系服务端+PC安卓苹果三端+加密工具+详细搭建教程