C++简介

在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C++。 C++进一步扩充和完善了C语言,成为一种面向 对象的程序设计语言。
  • C是C++的基础,C++语言和C语言在很多方面是兼容的。因此,掌握了C语言,再进一步学习C++就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。

C++名字的由来

  • C++这个名字是Rick Mascitti于1983年中所建议的,并于1983年12月首次使用。更早以前,尚在研究阶段的发展中语言曾被称为“new C”,之后是“C with Classes”。在计算机科学中,C++仍被称为C语言的上层结构。它最后得名于C语言中的“++”运算符(其对变量的值进行递增)。而且在共同的命名约定中,使用“+”以表示增强的程序。斯特劳斯特鲁普说:“这个名字象征着源自于C语言变化的自然演进”。

C++标准

  • 由ISO/IEC JTC1/SC22/WG21进行。已经出版的标准文档如下:
发布时间文档通称备注
2017ISO/IEC 14882:2017C++17第五个C++标准
2017ISO/IEC TS 22277:2017coroutines TS协程库扩展
2017ISO/IEC TS 21425:2017ranges TS提供范围机制
2017ISO/IEC TS 19568:2017library fundamentals TS标准库扩展
2016ISO/IEC TS 19571:2016concurrency TS用于并发计算的扩展
2015ISO/IEC TS 19217:2015concepts TS概念库,用于优化编译期信息
2015ISO/IEC TS 19841:2015TM TS事务性内存操作
2015ISO/IEC TS 19570:2015parallelism TS用于并行计算的扩展
2015ISO/IEC TS 18822:2015filesystem TS文件系统
2014ISO/IEC 14882:2014C++14第四个C++标准
2011ISO/IEC TR 24733:2011-十进制浮点数扩展
2011ISO/IEC 14882:2011C++11数学函数扩展
2010ISO/IEC TR 29124:2010-数学函数扩展
2007ISO/IEC TR 19768:2007C++TR1C++技术报告:库扩展
2006ISO/IEC TR 18015:2006-C++性能技术报告
2003ISO/IEC 14882:2003C++03第二个C++标准
1998ISO/IEC 14882:1998C++98第一个C++标准

编程开发编辑

集成开发环境(IDE)
  • Visual Studio (Visual C++) 在这里插入图片描述
  • C++ Builder
  • kDevelop
  • Anjuta
  • Code::Blocks:开放源码的全功能的跨平台C/C++集成开发环境 [7] 。
  • Visual Mingw
  • Ideone
  • Eclipse CDT
  • Compilr
  • Code Lite
  • Netbeans C++
编译器
  • Dev C++
  • Ultimate++
  • Digital Mars
  • C-Free
  • MinGW
  • Tiny C Compiler

C++中的特色

  • 和C语言相比,C++引入了更多的特性,包括:复合类型(引用类型等)、const限定符和constexpr常量表达式、类型处理运算符(类型别名及auto和decltype等多种类型指示符)、C++标准库(IO库与多种容器类)与迭代器、动态内存与智能指针、函数重载、面向对象程序设计(如数据抽象、成员函数、类作用域、构造函数与析构函数、静态成员、访问控制与继承、虚函数、抽象类与接口等)、拷贝控制、运算符重载、造型与函数风格的强制类型转换、模板与泛型编程,以及异常处理、名字空间、多继承与虚继承、运行时类型识别及嵌套类等。
  • 和普遍认为的相反,C++不是第一个正式引入const关键字的语言。80年代早期,Bjarne Stroustrup和Dennis Retchie讨论之后提供了在C语言中readonly/writeonly的实现机制,并在带类的C中获取了一定经验。关键字const正式引入C语言是在ANSI C89。这早于第一个C++国际标准近十年,但此时const已被C++实现普遍采用。
  • C++在某些案例中(见下“与C不兼容之处”),进行比C还要多的类型检查。
  • 以“//”起始作为注解起源自C的前身BCPL,而后被重新引入到C++。

与C不兼容之处

  • C++有时被认为是C的超集(superset),但这并不严谨。各个版本的ISO/IEC 14882的附录C中都指出了C++和ISO C的一些不兼容之处。
    • 大部分的C代码可以很轻易的在C++中正确编译,但仍有少数差异,导致某些有效的C代码在C++中失效,或者在C++中有不同的行为。
    • 最常见的差异之一是,C允许从void*隐式转换到其它的指标类型,但C++不允许。下列是有效的C代码:
      // 从void *隐式转换为int *
      int *i = malloc(sizeof(int) * 5);
      
      但要使其在C和C++两者皆能运作,就需要使用显式转换:
      int *i = (int *)malloc(sizeof(int) * 5);
      另一个常见的可移植问题是,C++定义了很多的新关键字,如new和class,它们在C程序中,是可以作为识别字(例:变量名)的。

C++的Hello World程序

  • 下面这个程序显示“Hello, world!”然后结束运行:

    #include <iostream>
    int main() {
    	std::cout << "Hello, world!" << std::endl;
     return 0;
    }
    

    这里也可以使用using指令以避免再次声明std::——

    #include <iostream>
    using namespace std;
    int main() {
    	cout << "Hello, world!" << endl;
    	return 0;
    }
    

    你可以用“\n”代替以上代码里的“endl”,不过必须用在句子的后端。请不要把斜杠(/)和反斜杠(\)混淆。
    std::cout << "Hello, world!\n";
    但需要知道的是, std::endl 不仅仅会在某个输出流中插入换行字符,还将执行输出流的 flush() 函数(即刷新缓冲区),而’\n’则不会。

应用

在这里插入图片描述

书籍
  • C++ Primer 第5版
    在这里插入图片描述

在这里插入图片描述

知识点

基本语法

  • C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。
    • 对象 :对象具有状态和行为。例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。对象是类的实例
    • :类可以定义为描述对象行为/状态的模板/蓝图。
    • 方法 : 从基本上说,一个方法表示一种行为。一个类可以包含多个方法。可以在方法中写入逻辑、操作数据以及执行所有的动作。
    • 即时变量 :每个对象都有其独特的即时变量。对象的状态是由这些即时变量的值创建的。

基本类型

类型转换

转义序列

  • ‘\a’ 响铃
  • ‘\n’ 换行符
  • ‘\r’ 回车符
  • ‘\t’ 水平制表符(Tab键)
  • ‘\b’ 退格符(BackSpace键)
  • ‘\’ 反斜线
  • “’” 单引号
  • ‘"’ 双引号
  • ‘\0’ 空字符

字符串

数组

  • 一维数组
  • 多维数组
  • 基于数组的列表
    • 列表就是同构元素组成的一个集合,元素之间存在一种线性关系(线性即指在逻辑级别,列表中除第一个元素之外的每个元素都有唯一的前导元素,出最后一个元素之外的每个元素都有唯一的后继元素

语句

典型的判断结构的一般形式:

在这里插入图片描述

语句描述
if 语句一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。
if…else 语句一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。
嵌套 if 语句您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。
switch 语句一个 switch 语句允许测试一个变量等于多个值时的情况。
嵌套 switch 语句您可以在一个 switch 语句内使用另一个 switch 语句。

循环

  • 有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了允许更为复杂的执行路径的多种控制结构。循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的一般形式:
    在这里插入图片描述

  • 循环类型
循环类型描述
while 循环当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。
for 循环多次执行一个语句序列,简化管理循环变量的代码。
do…while循环 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。
嵌套循环您可以在 while、for 或 do…while 循环内使用一个或多个循环。
  • 循环控制语句
    • 循环控制语句更改执行的正常序列。当执行离开一个范围时,所有在该范围中创建的自动对象都会被销毁。
控制语句描述
break 语句终止 loop 或 switch 语句,程序流将继续执行紧接着 loop 或 switch 的下一条语句。
continue 语句引起循环跳过主体的剩余部分,立即重新开始测试条件。
goto 语句将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。
函数
数据结构
类&对象
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值