从C语言到C++,必须知道的一些内容

C++

  • 从C到C++

C++基本情况介绍

​ ++ C语言运算符 C++是在C语言之上的扩展

​ 起初的名称:C with Class 即带类的C语言,只是C语言的一部分

  1. C++的诞生时间

    C++ 是由 Bjarne Stroustrup(本贾尼·斯特劳斯特鲁普 ) 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C(C with Class),后来在 1983 年更名为 C++。

    C++的标准化工作于1989年开始。

    1998年,C++的ANSI/IS0标准被投入使用。

    时间 标准版本
    1989/1998 89年制定98年投入使用
    2003 第二个C++标注,对98标准略作修改
    2011 第三个C++标准,颠覆性的标准
    2014 每三年提出一个标注

    C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。

  2. C++的特点

    • C++宏观上面向对象,微观上也面向过程,C语言为面向过程的语言
    • 支持运算符重载(令自定义的类型也支持运算符(算数运算符,逻辑运算符等)
    • 支持异常机制——错误处理(errno) #include <errno.h>
    • 支持泛型编程——对类型抽象化
  3. C++的应用

    • 兼顾执行效率和开发效率
      • C语言具有其他高级语言无法比拟的高效率
      • C++有优化编译器,在部分场合能让C++具有C的执行效率
      • 面向对象有丰富的扩展库
    • 科学计算库 (基本上由C++实现
    • 计算机网络 (ACE库
    • 广泛引用与网络编程
    • 网络游戏 (LOL等大型网络游戏)
    • 强建模能力 (数字建模 3D
    • 桌面应用程序 (office, windows桌面
    • 驱动程序 (C++优化编译器使得其执行效率提高
  4. C和C++的区别

    • C++基本完全兼容C语言
    • C语言面向过程,C++面向对象(宏观上面向对象,微观上也面向过程)
    • 其他可见C++特点
    • C++的函数支持重载、默认值、哑元
    • C++的枚举是一种强类型
  5. 第一个C++程序!

    
    #include<iostream>//C++标准IO库,一般C++的库基本没有.h后缀
    //C++中可以直接使用C 语言的头文件,但是如果使用C语言标准的头文件,一般来说C++也有自己提供的 #include<cstdio>  #include<cstdlib>
    using namespace std;//C++ 把标准库中的对象类型的名称放在了std中。
    int main()
    {
         
    	cout<<"HelloWorld!"<<endl;
        return 0;
    }
    

    使用g++编译器 在文件名称后加 -lstdc++也可以用gcc编译器

    后缀名一般为cpp 写成C,c++,cc也行

  • 独特的基本数据类型

    • C++中有bool布尔类型
      • bool类型的取值为 true 和 false 表示 真和假 底层用 1和0存储
    • 在输出时,true – 1 false—0 可以使用boolalpha 输出 true 和 false
  • C++的struct类型

    与C语言中struct的区别:

    1. C++定义完结构体变量后,定义变量可以不使用struct关键字

    2. C语言sizeof(空结构体)的大小为0,C++中为1,主要是为了标识内存

    3. C++的struct中可以定义函数(在自定义类型中定义函数,即面向对象的思想)

      在其中定义的函数可以直接访问结构体中的变量

      结构体中的变量可以用static修饰,但需要在结构体外进行定义

      类型 结构体名::成员名 = init_val;

      C++的结构体可以用访问控制属性,(public、protected、private)

      允许继承

  • C++的enum

    是一种独立的类型,不能和C语言一样直接用数字赋值枚举类型的变量,只能用枚举值

    但是可以用枚举给int类型变量赋值

    enum Direction{
         UP,DOWN,LEFT,RIGHT};
    
    Direction d = UP;//cout << d << endl; 依然是整数 
    d = DOWN;
    d = LEFT;
    d = RIGHT;
    
    d = 0;   d = 1;   d = 1024;          //错误的  但是C语言中允许 
    int num = d;
    num = LEFT;  //可以的
    
  • C++的union

    • C++中支持匿名联合(既没有类型,也没有定义联合变量)
    • C++中的匿名联合表示的是变量在内存中的布局方式
    • 可以直接访问匿名联合中的属性
    //以编译时,以联合的形式编译布局a,b,c,即让a,b,c共用一块内存
    union{
         
        int a;
        int b;
        char c;
    };
    
    a = 1024;
    b = 9527;
    c = 'A';
    
  • C++的string

    //保留了C风格的字符串,同时引入了string类型的字符串
    string s1;  //空字符串
    string s2 = "Hello world"; //C指针的初始化方式
    string s3("Hello world");
    string s4 = {
         "HEllo world"<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值