时间:2022-10-09 17:43:32 | 浏览:289
C++是C语言的延伸,可以理解为C++在C语言里加入了面向对象的特性。因为只有面向对象特性的加持,代码才能更好的复用、扩展和工程化,这是大型项目的必备要素。
而C语言是一种通用的、面向过程的计算机程序设计语言。
C++经常与C混用,这主要是因为许多人没有掌握C++语言中“面向对象”的概念,所以只能写出所谓“具备C++语言一些特性的C代码”。如果正维护某些用C++编写的老系统,可能你会看到大量这种类型的代码。
从技术上讲,C++是C的超集,这意味着C程序可以在C++编译器编译成功(会有一些特殊情况)。
在C++中,类是一种规范,它描述了这种新型数据格式,对象是根据这种规范构造的特定数据结构。例如,类可以描述公司管理人员的基本特征(姓名、头衔、工资、特长等),而对象则代表特定的管理人员。通常,类规定了可使用哪些数据来表示对象以及可以对这些数据执行哪些操作。
在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。
从应用角度来看,C++多用于开发各种后台使用的算法和逻辑库。而C语言则更底层,主要用于开发更核心的算法、驱动程序和控制程序等。它允许开发者直接访问计算机的内存,操纵计算机的许多底层部件,你会发现C被广泛应用在操作系统、底层硬件、嵌入式系统等方面,C语言通常被认为是面向系统的编程语言。
对于C语言的学习来说,需要了解最基础的语法诸如变量/循环/字符串等等,那学习C++的就需要在这个基础上增加对面向对象(封装、继承与多态)特性、泛型、模板、STL等等内容的学习。
不过,C和C++的学习路径大体相同,可以简单分为五大类:算法和数据结构、面向对象思想、基本语言知识、产品开发和与其他语言混合开发。在这个分类之下还有一些更细致的内容,如图所示:
C/C++是更快、更底层的语言,要想高效使用C/C++语言,就需要掌握更多的算法和数据结构的知识,以及操作系统和多线程的知识。尤其是操作系统的知识,因为程序最终要运行在操作系统上。
例如,如何读取一个文件的时间属性,如何读取键盘的特定键,如何建立一个目录等,这些都与程序运行的平台(操作系统)有紧密的关系。对这些知识了解得越多,就越能编写出高效、简洁的C/C++语言程序。
如果要编写一个大规模的程序,还需要具备设计模式的知识。除此之外,大中型的程序一般都是混合利用多种语言来开发的,这样就可以充分发挥各种语言的优点。例如,为了得到更好的界面,一般都会采用C#和Java进行开发,而核心的算法和靠近硬件的部分则需要采用C/C++语言编写。
要想真正融会贯通,一定要知道一些C++与其他语言混合开发的知识,例如C++/CLI, 或者是COM组件的知识。
对于想要入门C++的同学,人邮君推荐你读C++入门经典教程——《C++ Primer Plus 第6版 中文版》,作者是[美]史蒂芬·普拉达(Stephen Prata)。
2020版赠送价值99元e读版电子书及在线实验环境,附赠大尺寸(60CM*80CM)全书学习思维导图。
C++ Primer Plus 第6版 中文版(异步图书出品)
C++ Primer Plus 第6版 中文版(异步图书出品)
¥91.9
购买
这本书是根据2003年的ISO/ANSI C++标准编写的,通过大量短小精悍的程序详细而全面地阐述了 C++的基本概念和技术,并专辟一章介绍了C++11新增的功能。
全书分18章,分别介绍了C++程序的运行方式、基本数据类型、复合数据类型、循环和关系表达式、分支语句和逻辑运算符、函数重载和函数模板、内存模型和名称空间、类的设计和使用、多态、虚函数、动态内存分配、继承、代码重用、友元、异常处理技术、string类和标准模板库、输入/输出、C++11新增功能等内容。
本书针对C++初学者,从C语言基础知识开始介绍,然后在此基础上详细阐述C++新增的特性,因此不要求读者有C语言方面的背景知识。可供初学者自学C++时使用,也可作为高等院校教授C++课程的教材。
本书包含大量的示例代码和编程练习,此外,还有配套的习题答案。
C++ Primer Plus 第6版 中文版习题解答(异步图书出品)
C++ Primer Plus 第6版 中文版习题解答(异步图书出品)
¥74.5
购买
《C++ Primer Plus(第6版)中文版习题解答》共分为18章,每一章的主题与《C++ Primer Plus(第6版)中文版》完全一致。每章开篇采用思维导图的方式列出本章的知识点,然后对每章的重点内容进行了梳理总结,最后则对每章中的复习题和编程练习进行了分析并给出了解答思路,确保读者在彻底夯实理论知识的同时,进一步提升实际编程能力。
C++语言入门经典教程:C++ Primer Plus 第6版 中文版+
C++语言入门经典教程:C++ Primer Plus 第6版 中文版+ 中文版习题解答(套装2册)(异步图书出品)
¥161.3
购买
有兴趣的同学还可以登录异步社区https://www.epubit.com/,学习免费课程!
想要入门C语言的同学,人邮君推荐你读C语言入门经典教程《C Primer Plus 第6版 中文版》,作者也是[美]史蒂芬·普拉达(Stephen Prata)。
C Primer Plus 第6版 中文版(异步图书出品)
C Primer Plus 第6版 中文版(异步图书出品)
¥84.1
购买
C++语言是非常独特的。虽然实际上所有的编程语言都从其他语言中吸收了一些思路、语法元素和关键字C++却是吸收了另一种完整的语言,即C语言。事实上, C++语言的创建者Bjarne Stroustrup原先把他的新语言命名为"带类的C"。这意
第1章初识C++为什么选择C++?从读者自身的实际情况来看,原因有很多。读者选择C++可能是因为必须为一个C++项目提供技术支持。在超过30年的生命周期中,该项目中已经包含了数百万行C++代码,并且大部分流行的应用程序和操作系统是使用C+编
作者 | Herb Sutter译者 | 弯月,责编 | 屠敏出品 | CSDN(ID:CSDNnews)C++20已全票通过,有望于今年晚些时候发布9月4日,C++ 20的国际标准草案投票结束,而且获得了全票通过。这意味着C++ 20已完
SocketLinux Socket 编程(不限 Linux)Socket 中的 read()、write() 函数ssize_tread(intfd,void*buf,size_tcount);ssize_twrite(intfd,con
TCP 传输连接管理因为 TCP 三次握手建立连接、四次挥手释放连接很重要,所以附上《计算机网络(第 7 版)-谢希仁》书中对此章的详细描述:https://gitee.com/huihut/interview/raw/master/ima
众所周知,C++难。就好像博大精深的汉语比英语难,这是客观事实,我们并不否认。但,转念想想,英语也不简单吧?从小学开始学,到了大学,挂在四六级上的同学数不胜数。可貌似没有人说不好汉语吧,此时,你能说汉语比英语简单么?不过是环境使然罢了。
C++语言称为C with Classes,C++比C到底加了什么呢?C++对C语言(面向过程)的扩充主要表现在面向对象和泛型编程两部分。另外,C++对C语言的基础方面如函数、变量类型等也进行了完善和添加。泛型编程最初诞生于C++中,由Al
宏定义是用一个标识符来表示一个字符串,在宏调用中将用该字符串代替宏名。给程序员提供了便利,使程序更加清晰,便于阅读和理解,进一步提高了程序的运行效率,对于嵌入式系统而言,为了能达到性能要求,宏是一种很好的代替函数的方法,但是使用不慎会得到
出品|开源中国文|局长科技外媒 ITWire 报道了对 Linus Torvalds 的采访。关于 Linux 内核对 Rust 的支持情况,Linus 回应称“Linux 内核尚未支持 Rust”,并补充说“目前相关工作正处于开发阶段,预
C 和 C++ 的没落,不仅是因为 CPU 时钟周期的关系,而且因为关系到了开发者的时间全球大约有400万C和C++程序员,很可能是最大的社区了,约占20%的市场份额,不亚于Java,甚至还要更多一些(C和C++一起)。它们也是当前主流语言