• c++的发展史

  • c++是由c发展而来的,与c语言兼容。c语言是结构化和模块化的语言,它是面向过程的。
  • 为了解决软件设计危机,在20世纪80年代提出了面向对下对象的程序设计(oop)思想。Smalltalk就是一种面向对象的语言,但是在实践中人们发现c语言深入人心,所以选择在它的基础上加以发展,c++诞生了。
  • c++是由贝尔实验室的的Bjarne Stroustrup博士和他的同事们于20世纪80年代初在c语言的基础上开发成功的。
  • c++保留了c语言原有的所有优点,并增加了面向对象的机制,增加了适用于面向对象程序设计的“类(class)”。
  • 面向对象程序设计是针对开发较大规模的程序而提出来的,目的是提高软件开发的效率。
  • C++是基于C语言而产生的,它既可以进行C语 言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程 序设计。
  • c++的历史版本

  • c++的基础知识介绍

  • 命名空间
  • namespace 后跟命名空间的名字 再跟{},{}中为命名空间成员
  • 一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中
  • 命名空间的使用  
  • 加命名空间及作用域限定符
  • 使用using将命名空间中成员引入
  • 使用using namespace 命名空间名称引入
  • 参数缺省

  • 缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该 默认值,否则使用指定的实参。

  • 缺省参数分为全缺省参数和半缺省参数

  • 全缺省   void test(int a = 10, int b = 20, int c = 30)

  • 半缺省   void test(int a, int b = 20, int c = 30)

  • 注意

  • 1. 半缺省参数必须从右往左依次来给出,不能间隔着给

  • 2. 缺省参数不能在函数声明和定义中同时出现

  • 3.缺省值必须是常量或全局变量

  • 4.c语言不支持

  • 函数重载

  • 一个词有多种含义,人们通过上下文来判断这个词的含义,即这个词被重载了

  • 函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数
     个数
      或  类型  或  顺序)必须不同,常用来处理实现功能类似数据类型不同的问题

  • 有时候在C++工程中可能需要将某些函数按照C的风格来编译,在函数前加extern "C",意思是告诉编译器, 将该函数按照C语言规则来编译。

为什么c语言不支持函数重载?

举例说明

void  test(int x,int y);
在c语言中,编译器在编译后在库中的名字为_test
在c++中,编译器在编译后在库中的名字为_test_int_int
还有一个函数的声明如下:
void test(float x,float y);
在c语言中,编译器在编译后在库中的名字为_test
在c++中,编译器在编译后在库中的名字为_test_float_float
在链接时,都是找名字进行链接的,就比如以上两个函数,
在C语言中两个的名字一样,就会在链接中报错。

C++中它们的名字不一样,所以就不会报错。

  • 引用
  • 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它 引用的变量共用同一块内存空间。
  • 类型& 引用变量名(对象名) = 引用实体;
  • 引用在定义时必须初始化
  • 一个变量可以有多个引用
  • 引用一旦引用一个实体,再不能引用其他实体

引用和指针的不同点:

1. 引用在定义时必须初始化,指针没有要求

2. 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型 实体

3. 没有NULL引用,但有NULL指针

4. 在sizeof中含义不同:引用结果为引用类型的大小,但指针始终是地址空间所占字节个数(32位平台下占 4个字节)

5. 引用自加即引用的实体增加1,指针自加即指针向后偏移一个类型的大小

6. 有多级指针,但是没有多级引用

7. 访问实体方式不同,指针需要显式解引用,引用编译器自己处理

8. 引用比指针使用起来相对更安全

c++ ——初次见面,请多指教相关推荐

  1. TypeScript,初次见面,请多指教 ?

    摘要: TS入门手册. 原文:TypeScript,初次见面,请多指教 作者:徐祁 Fundebug经授权转载,版权归原作者所有. 为什么用 TS ? 说实话,最开始并没有想把 TS 用到实际项目中来 ...

  2. bcs转10 c语言,小弟刚学习C语言,怎么把下段汇编代码转化为C语言程序,请高手指教!!!单片机89c52...

    已结贴√ 问题点数:20 回复次数:3 小弟刚学习C语言,怎么把下段汇编代码转化为C语言程序,请高手指教!!!单片机89c52 BIT_COUNT     DATA 07FH TIMER0       ...

  3. 用Python画米老鼠,为《余生请多指教》打call

    杨紫和肖战的<余生请多指教>于3月15日起腾讯视频全网独播,湖南卫视金鹰独播剧场晚8:20播放.对于杨紫的纯剧粉(战长沙入的坑图片),想要用Python制作一份独特的宣传视频.    之前 ...

  4. 是学不会的OD啊(一)->初次见面,请多指教

    文章目录 是学不会的OD啊 OD是个啥? OD的那些看不明白的窗口 主窗口 看到那些工具栏了吗 各个位置双击效果 我最喜欢的快捷键来了 断点 常见断点类型 OD 常用的插件 是学不会的OD啊 OD是个 ...

  5. 初来乍到 请多多指教

    哈喽,大家好呀,我叫亚亚,在大学就读的专业是计算机科学与技术,为了更好的学习编程,我想要养成一个经常写代码的习惯,在CSDN看到有很多大佬的存在,平时遇到问题也会来这个平台学习大佬们的方法,虽然我的技 ...

  6. c语言打砖块游戏代码,打砖块游戏的源代码(请多指教)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include#include#include#include#includevoid draw(int x1){int m=0,n=0,x=40,y= ...

  7. 新手来博客,请多多指教。

    作为一名大二的学生,在大一的时候学习了C语言.但是现在已经忘记的差不多了,自己买了一本<C程序设计语言>,因为要参加一个C语言的比赛.现在想在博客中重新学习一下C语言. C语言程序,都是由 ...

  8. 打砖块游戏c语言设计,打砖块游戏的源代码(请多指教)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include#include#include#include#includevoid draw(int x1){int m=0,n=0,x=40,y= ...

  9. c语言打砖块代码,打砖块游戏的源代码(请多指教)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include#include#include#include#includevoid draw(int x1){int m=0,n=0,x=40,y= ...

最新文章

  1. iOS使用支付宝支付步骤
  2. Python DAG—归简法—拓扑排序
  3. 网络安全人才的发展情况是怎么样的呢?快上车,带你了解
  4. 昨天还在for循环里写加号拼接字符串的那个同事,今天已经不在了
  5. php-箭头r含义,php中-箭头的用法和意义
  6. 【POJ】3268 Silver Cow Party
  7. 贵州丹寨:庆苗年 迎新春
  8. 工程测量计算机在线用,工程测量中的计算机编程新技术.doc
  9. SEO之关键词的选择
  10. 最基础的股市定律--支撑阻挡定律
  11. 苹果CMS v10模板:大橙子vfed完美版视频网站模板
  12. 30岁前不必在乎的30件事
  13. 算法系列之二十:计算中国农历(一)
  14. 工作记录 01-02-2018 至 03-16-2018
  15. 高精度定位系统精细测距定位
  16. 关于WiFi和信号图标出现感叹号消除办法
  17. 如何破解招聘面试中暗藏的八大玄机?
  18. UnityShader-高斯模糊
  19. python 数据分析 |2. Jupyter Notebook配置和使用
  20. 5. 使用PyTorch预先训练的模型执行目标检测

热门文章

  1. 达拉崩吧java,当剽窃贼遇见《达拉崩吧》,网友:这届玩家过分沙雕,惹不起...
  2. 亚商投资顾问 早餐FM/0116《证券经纪业务管理办法》发布
  3. mac简体拼音打出来是英文_Mac如何打出各种标点符号、特殊符号、注音文、全角英文?...
  4. iframe显示微信公众号文章
  5. Android按键功能重定义
  6. 抖音中强大的面具贴纸美颜sdk您了解多少?
  7. 如何使用windows在msys2编译saba(开源mmd obj模型查看软件)
  8. PMP考试必用公式大全
  9. Linux:使用select PS3写一个名单脚本
  10. java jdkxp32_JDK简介及xp下的安装