从C语言到c++的过渡

C++对C语言中设计不合理的地方的改进

C++98相关的知识点   C++98中进行过对C语言的语法做成模板的方式,包括头文件时可以  .h 

98以后这种方案就被抛弃了

C++11相关的知识点

 

关键字:c99有32个。C++98继承C语言,有63个关键字,

 

C++ 对C语言有那些拓展?

 

扩充了面向对象的概念,高度抽象化

C++对C语言的增强

 

命名空间(namespace)的概念,作用

作用:解决命名重名(名字污染)的冲突,可以把所有可能会发生命名重名的东西,都放入到命名空间里

一个命名空间就定义了一个作用域,命名空间里的所有内容都被限定到该作用域里了

iostream提供了一个叫命名空间的东西,标准命名空间的名字叫std

属于C++里的一种新的作用域  

  1. 普通的命名空间

  2. 嵌套的命名空间

命名空间的三种使用方法:

  1. 命名空间的名字 :: 成员名字(::是作用域限定符,用于调用全局变量的那个变量) 

    1. 使用场景:命名空间里的成员在文件里偶尔被使用

    2. 肯定不会产生冲突(同一个工程中可以定义多个相同名称的命名空间,编译器会将相同名字的命名空间合并成一个命名空间来使用)

  2. 使用  using 命名空间:: 成员名字;  来导出成员名字  (使该命名空间里的成员变就相当于文件里的全局变量)

    1. 会造成命名冲突的问题,因为全局作用域里可能有与该成员重命名的变量

    2. 适用于场景:当前命名空间里的个别成员被多次在某个文件里被多次使用

1. using std:: cout;

2. using std:: endl;

3. using std:: cin;

        3.    using namespace std;   这是将命名空间里的所有成员都导出来的方法

            当前命名空间中某个成员在某个文件里使用的次数比较多

                缺陷:发生命名冲突的冲突率比较多(因为相当于将命名空间)

    输入输出方式:  printf ,scanf 与 cout ,cin的区别

printf 要输入大量的字符串,不会进行检测

scanf会被报不安全,比如没有放取取地址符,在编译期间不会检测,但是在程序运行期间就会报错

cout  使用  << 来进行分割字符串,可以用“\n"字符来换行,也可以使用endl (在标准命名空间里被命名,因此使用的时候要使用标准命名空间) 可以形象的理解为从 cout << 内容  从内容流向cout,再从cout流向控制台

同理:cin>> 内容 ,内容是从键盘流向cin,再从cin流向控制台

 

 

c++里对函数类型与返回值有严格的检查,比如省略返回值类型,C语言会默认用int类型,c++会进行报错,即使是没有返回类型,也要严格的定义为void

缺省参数分类    来自于备胎思想,提供返回值,就用返回值,不提供就使用缺省值

  1. 全缺省参数

  2. 半缺省参数:只有部分参数带有缺省值

 

名字修饰规则区别:

c++里有函数重载-->可以理解为一词多义,比如可以用于写一个通用类型函数

函数名字相同,代码的参数列表不同,而在C语言里这样写就会报函数重定义

重定义条件:函数名字相同,在同一个作用域

是否形成重载,与函数返回值类型是否相同,没有关系

参数列表不同:参数的个数,参数的类型不同,参数的次序不同

 

调试工具:c--> gcc

                c++-->g++

endl:语句结束,用于c++的输出流的换行

引用

 

类和对象,有面向过程向面向对象的转变

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值