c++历史发展
第一阶段从80年代到1995年。这一阶段C++语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额; 第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C++中占据了越来越多的比重性。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C++受到了一定的冲击; 第三阶段从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C++出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C++已经成为当今主流程序设计语言中最复杂的一员。
年份 | C++ 标准名称 非正式名称 |
---|
1998 | ISO/IEC 14882:1998 C++98 | 2003 | ISO/IEC 14882:2003 C++03 | 2011 | ISO/IEC 14882:2011 C++11 | 2014 | ISO/IEC 14882:2014 C++14 | 2017 | ISO/IEC 14882:2017 C++17 | 2020 | Yet to be determined C++20 |
c++特点
C++是C语言的超集。它既保持了C语言的简洁、高效和接近汇编语言等特点,又克服了C语言的缺点,其编译系统能检查更多的语法错误,因此,C++比C语言更安全。
C++保持了与C语言的兼容。绝大多数C语言程序可以不经修改直接在C++环境中运行,用C语言编写的众多库函数可以用于C++程序中。 支持面向对象程序设计的特征。C++既支持面向过程的程序设计,又支持面向对象的程序设计。
C++程序在可重用性、可扩充性、可维护性和可靠性等方面都较C语言得到了提高,使其更适合开发大中型的系统软件和应用程序。
C++设计成静态类型、和C同样高效且可移植的多用途程序设计语言。
C++设计成直接的和广泛的支援多种程序设计风格(程序化程序设计、资料抽象化、面向对象程序设计、泛型程序设计)。
C++设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误。
C++设计成尽可能与C兼容,籍此提供一个从C到C++的平滑过渡。
C++避免平台限定或没有普遍用途的特性。
C++不使用会带来额外开销的特性。
C++设计成无需复杂的程序设计环境。
C++支持面向对象编程, 宏观面向对象,微观面向过程
支持泛型编程(类型参数化)
支持异常机制 C语言的错误处理和正常逻辑是一样的代码
支持操作符重载
C++提供丰富的标准库 有丰富的第三方库
第一个C++程序 hello world
入门先从hello world来学习
#include <iostream>
using namespace std;
int main(){
cout << "Hello world!" << endl;
return 0;
}
C与C++有什么区别?
C语言是结构化的编程语言,它是面向过程的,考虑的是实现过程;C++是面向对象的,考虑的是整个程序模型。
#C++之父的建议
1.少用宏,多用const、enum和inline
2.变量随用随声明同时初始化
3.少用malloc/free,多用new/delete
4.少用强制类型转换,建议用显示类型转换替代
5.少用C风格的字符串,多用string
6.树立面向对象的编程思想
面向对象编程 面向过程: 把问题过程化,分解成若干个步骤,每个步骤封装成函数, 然后以一定的逻辑依次调用各个函数 面向对象: 把问题对象化,抽象封装成类,然后实例化对象, 对象的相互作用就是解决问题的步骤
举个大象的例子
把大象装进冰箱。
面向过程:
1.打开冰箱门
2.把大象装进去
3.关闭冰箱门
面向对象:
创建冰箱和大象
冰箱具有能装大象的功能
大象是能够装进冰箱的大象
对象: 一台冰箱, 一只大象
c++的一些基础知识
C++中运算符别名
&& and
|| or
! not
& bitand
^ xor
{ <%
} %>
[ <:
] :>
C++的编译器g++,如果使用gcc编译,需要带上-lstdc++
指定其使用标准C++的运行库
源文件扩展名: .cpp .cc .C .cxx .c++
最好使用.cpp
头文件 #include iostream IO流
C++中标准库头文件一般都没有.h
当然也允许有.h
C++标准库中的内容放在一个叫做std名字空间中
using namespace std;
cout 对象 标准输出对象 cin 对象 标准输入对象 cerr 对象 标准错误输出对象 endl 对象 换行对象
<<: 输出运算符 cout cerr
>>: 输入运算符 cin
|