个人介绍
C++程序设计

主讲教师:

教师团队:共1

  • 钱能
学校: 浙江工业大学
开课院系: 信息工程学院/计算机系
专业大类: 计算机科学与技术
开课专业: 计算机应用技术

 C++是一种使用非常广泛的电脑程序设计语言。它是一种静态数据类型检查的,支持多范型的通用程序设计语言。C++支持过程化程序设计、数据抽象化、面向对象程序设计、泛型程序设计、基于原则设计等多种程序设计风格。

C++是由C发展而来的,与C兼容。用C语言写的程序基本上可以不加修改地用于C++。从C++的名字可以看出它是C的超越和集中。C++既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。


教师团队

钱能

职称:教授

单位:浙江工业大学

部门:信息工程学院

职位:教授

C++名字的由来

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

Rick Mascitti在1992年被非正式地问起名字的由来,他表示这是在半开玩笑中说出的。他从没想过C++会成为这门语言的正式名字。

有一个关于C++名字的笑话是,当你使用后缀++时,附加只发生在运算之后(因此,它应该是++C,而不是C++,这个笑话是说时下某些程序员还在以使用C的方式使用C++,这通常被一些权威著作认为是不正确的)。

c++的语言特点

优点

C++代码

· C++设计成静态类型、和C同样高效且可移植的多用途程序设计语言。

· C++设计成直接的和广泛的支持多种程序设计风格(程序化程序设计、资料抽象化、面向对象程序设计、泛型程序设计)。

· C++设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误。

· C++设计成尽可能与C兼容,借此提供一个从C到C++的平滑过渡。

· C++避免平台限定或没有普遍用途的特性。

· C++不使用会带来额外开销的特性。

· C++设计成无需复杂的程序设计环境。

出于保证语言的简洁和运行高效等方面的考虑,C++的很多特性都是以库(如STL)或其他的形式提供的,而没有直接添加到语言本身里。关于此类话题,Bjarne Stroustrup的《C++语言的设计和演化》(1994)里做了详尽的陈述。

C++在一定程度上可以和C语言很好的结合,甚至大多数C语言程序是在C++的集成开发环境中完成的。C++相对众多的面向对象的语言,具有相当高的性能。

C++引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。很多优秀的程序框架包括Boost、Qt、MFC、OWL、wxWidgets、WTL就是使用的C++。

代码性能

人们一般认为,使用Java或C#的开发成本比C++低。但是,如果充分分析C++和这些语言的差别,会发现这句话的成立是有条件的。这个条件就是:软件规模和复杂度都比较小。如果不超过3万行有效代码(不包括生成器产生的代码),这句话基本上还能成立。否则,随着代码量和复杂度的增加,C++的优势将会越来越明显。造成这种差别的就是C++的软件工程性。

缺点

C++由于语言本身过度复杂,这甚至使人类难于理解其语义。更为糟糕的是C++的编译系统受到C++的复杂性的影响,非常难于编写,即使能够使用的编译器也存在了大量的问题,这些问题大多难于被发现。

由于本身的复杂性,复杂的C++程序的正确性相当难于保证。也有人提出不支持多线程的原语等缺陷。不过有如此多的知名人士提出了如此多的缺陷,正说明C++被广泛使用和成功。

c++语言由于过度的复杂性,以及与Unix的文化相抵触,在Unix/Linux领域受到很多著名人士(比如Linux之父Linus Torvalds与著名黑客Eric S. Raymond)的强烈批评与抵制。

c++经典书籍

入门书籍

《C++ Primer 中文版(第5版)》

《C++ Primer (Fifth Edition)》

《C++ Primer Plus 中文版(第六版)》

《C++ Primer Plus (Sixth Edition)》

进阶书籍

《Thinking in C++》

《C++编程思想》

《The C++ Programming Language (Fourth Edition)》

《C++程序设计语言(第四版)》

《Essential C++》

《The C++ Standard Library: A Tutorial and Reference》

《C++标准程序库:自修教程与参考手册》

《Effective STL》

《Generic Programming and the STL: Using and Extending the C++ Standard Template Library》

《泛型编程与STL》

《C++语言的设计和演化》

《C++标准程序库:自修教程与参考手册》

《STL源码剖析》

高阶书籍

《Standard C++ IOStreams and Locales: Advanced Programmer's Guide and Reference》

《标准C++输入输出流与本地化》

《C++ Network Programming》

《C++网络编程》

《Ruminations on C++: A Decade of Programming Insight and Experience》

《C++沉思录》

《Inside The C++ Object Model》

参考教材



课程评价

教学资源
课程章节 | 文件类型   | 修改时间 | 大小 | 备注
2.8 1!到n!的和
视频
.mp4
2014-02-27 363.65MB
2.9 最大公约数
视频
.mp4
2014-02-26 263.98MB
3.1 等比数列
视频
.mp4
2014-02-27 197.19MB
3.3 素数筛法
视频
.mp4
2014-02-27 350.92MB
3.4 浮点型原理
视频
.mp4
2014-02-27 353.61MB
3.5 浮点型表示范围
视频
.mp4
2014-02-27 349.64MB
4.2 数学方法优化
视频
.mp4
2014-02-27 330.37MB
5.1 递归
视频
.mp4
2014-02-27 330.57MB
5.2 多重集
视频
.mp4
2014-02-27 352.53MB
5.3 二维数组
视频
.mp4
2014-02-26 309.65MB
5.4 字串与整型转换
视频
.mp4
2014-02-27 300.86MB
5.5 运行错误解析
视频
.mp4
2014-02-27 381.23MB
5.6 常规做题策略
视频
.mp4
2014-02-27 185.90MB
5.7 逆反
视频
.mp4
2014-02-27 348.72MB
5.8 数学方法运用
视频
.mp4
2014-02-27 93.07MB
5.9 Map
视频
.mp4
2014-02-27 360.34MB
5.10 结构
视频
.mp4
2014-02-27 340.11MB
6.1 集合
视频
.mp4
2014-02-27 357.81MB
6.2 空间换时间
视频
.mp4
2014-02-27 350.49MB
 
文档
.pptx
2014-02-27 546.77KB
6.3 提交策略
视频
.mp4
2014-02-27 91.92MB
6.4 向量法
视频
.mp4
2014-02-27 87.47MB
6.6 字串处理
视频
.mp4
2014-02-27 87.58MB
6.7 计算技巧
视频
.mp4
2014-02-27 329.78MB
7.1 接龙
视频
.mp4
2014-02-25 147.89MB
7.3 斐波追溯数
视频
.mp4
2014-02-25 255.56MB
11.2 头文件
视频
.mp4
2014-02-27 415.44MB
15.1 继承召唤多态
视频
.mp4
2014-02-27 153.52MB
 
文档
.ppt
2014-02-27 1.13MB
15.2 抽象编程的困惑
视频
.mp4
2014-02-27 216.38MB
 
文档
.ppt
2014-02-27 926.00KB
15.4 避免虚函数误用
视频
.mp4
2014-02-27 207.90MB
 
文档
.ppt
2014-02-27 1.00MB
15.5 精简共性的类
视频
.mp4
2014-02-27 106.63MB
 
文档
.ppt
2014-02-27 819.00KB
15.6 多态编程
视频
.mp4
2014-02-27 177.62MB
 
文档
.ppt
2014-02-27 940.50KB
课程章节
提示框
提示框
确定要报名此课程吗?
确定取消

京ICP备10040544号-2

京公网安备 11010802021885号