【C++】ThefundamentalsofC++
- 互联网
- 2025-08-28 10:51:02

《C++程序设计基础教程》——刘厚泉,李政伟,二零一三年九月版,学习笔记
文章目录 【前言】C 和 C++ 的区别与联系1、程序设计语言简介2、C++语言的特点与程序结构3、过程型程序设计4、面向对象程序设计
【前言】C 和 C++ 的区别与联系
C 和 C++是两种不同的编程语言,它们之间存在区别与联系。
区别
(1)语法特性:
C语言是面向过程的编程语言,注重程序的过程和函数的设计,语法相对简洁。
C++在C语言的基础上添加了面向对象的特性,如类、对象、继承、多态等,使得代码更加模块化和可复用。
(2)标准库:
C语言的标准库主要包括输入输出函数、字符串处理函数等。C++在C语言标准库的基础上,添加了大量的模板库,如STL(Standard Template Library),包括容器、算法、迭代器等,方便开发和使用。(3)内存管理:
C语言需要手动管理内存,包括分配和释放内存空间。C++引入了自动内存管理机制,通过构造函数和析构函数自动处理内存的分配和释放,避免了内存泄漏和越界访问的问题。此外,C++还引入了智能指针等特性来进一步简化内存管理。(4)异常处理:
C语言中没有原生的异常处理机制,开发者需要使用错误码或其他方式来处理错误和异常情况。C++引入了异常处理机制(try-catch语句),可以捕获和处理程序运行过程中的异常情况,使得错误处理更加灵活和易于管理。(5)名称空间:
C++引入了命名空间(namespace)的概念,可以用来避免不同库或代码之间的命名冲突问题。而C语言没有命名空间的概念,通常通过文件作用域和static关键字来避免命名冲突。(6)文件后缀名:
C语言的源文件通常使用“.c”作为文件扩展名。C++的源文件则通常使用“.cpp”作为文件扩展名。联系
(1)兼容性:C++是C语言的超集,大部分符合C语言语法规范的程序也可以在C++环境中编译和运行。C++程序员可以在C++中直接使用C语言代码,包括数据类型、基本语法结构、运算符以及大多数标准库函数等。
(2)应用场景:C语言以其高效、简洁的特点广泛应用于嵌入式和底层开发等领域;而C++则凭借其丰富的特性和灵活性适用于系统软件和应用软件的开发,如大型软件系统、图形图像处理、游戏开发等。
综上所述,C和C++在语法特性、标准库、内存管理、异常处理、名称空间以及文件后缀名等方面存在显著区别,但同时它们之间也存在紧密的联系和兼容性。在实际应用中,开发者可以根据项目的需求选择合适的语言来实现最优的开发效果。
1、程序设计语言简介1)程序设计是人机交互的重要媒介
学好程序设计包含两个方面的内容,一方面要熟练掌握程序设计语言的使用方法,另一方面也要学会计算机思维分析和表达现实世界的问题。
2)程序设计语言的发展概况
机器语言:0,1 编码的指令序列构成,依赖于特定型号的计算机硬件,执行效率高,但难移植,对程序员来说编写、阅读和修改都比较困难
汇编语言:“ADD”、“MOV”,尝试用一些简洁的英文符号来代替指令中特定的二进制串,虽然也对硬件比较依赖,移植性不好,但程序精炼且质量高
高级语言:上述两种语言开发效率低且容易出错,人们开始寻找一种接近于数学或自然语言的编程语言,不依赖于硬件,编出的程序能在不同的机器上通用。第一个完全脱离机器硬件的高级语言 FORTRAN 于 1954 年问世!高级语言的发展也经历了从早期的无结构语言到结构化语言,从过程型语言到面向对象语言的历程
2、C++语言的特点与程序结构1)C++语言的特点
语言简练、程序结构简单:大部分功能都由各种标准函数和类来实现数据类型丰富、齐全:整数、实数、字符、字符串等基本数据类型,数组、指针、结构体等构造数据类型,还有类这一个特殊数据类型运算符丰富、齐全:有常规运算符(算数、逻辑、关系运算符)和硬件有关的运算符(位、地址运算符)语言的通用性及可移植性强:2)简单的 C++ 程序例
eg 1-1 输出 “Hello World”
#include <iostream> using namespace std; int main() { cout << "Hello World"; return 0; }第一行,是一个“文件包含指令”,是 C++ 编译预处理指令之一,作用是将文件 iostream 的内容包含到该指令所在的程序文件中 第二行,使用命名空间 std,C++标准库中的类和函数的在命名空间 std 中进行了声明 cout 是 C++系统定义的对象名,成为输出流对象 return 返回 0 表示程序正常结束,如果程序不能正常执行,则会自动向操作系统返回一个非零值,一般为 -1
eg 1-2 求 a、b两个数之和
#include <iostream> using namespace std; int main() { int a,b,sum; cin>>a>>b; sum = a + b; cout<<"a+b="<<sum<<endl; return 0; }>> 是“提取运算符”,cin 是输入对象流
endl 是 C++输出时的控制符,作用是换行,end line
eg 1-3 输出两个数中的较大数
#include <iostream> using namespace std; int max(int x, int y) { int z; if (x>y) z = x; else z = y; return z; } int main() { int a, b, m; cin >> a >> b; m = max(a, b); cout << "max=" << m << "\n"; return 0; }output
1 2 max=2输入的两个数据之间可用空格或回车键隔开
eg 1-4 用面向对象程序设计管理学生信息
#include <iostream> using namespace std; class Student {private: int num; int score; public: void setdata() { cin >> num; cin >> score; } void display() { cout<<"num="<<num<<endl; cout<<"score="<<score<<endl; } }; int main() { Student stu1, stu2; stu1.setdata(); stu2.setdata(); stu1.display(); stu2.display(); return 0; }output
1 98 2 99 num=1 score=98 num=2 score=99数据成员和成员函数
3)C++程序的结构
C++程序可以由一个或多个编译单元构成,每一个编译单元为一个文件一个文件可以包括编译预处理命令(#include <iostream>: 包含标准输入输出库,用于输入输出操作。 #define, #ifndef, #endif 等:用于条件编译和宏定义)、头文件、命名空间、全局声明、函数等部分一个函数由函数头部和函数体组成C++语句以分号结束一个C++程序总是从 main 函数开始执行的类是 C++ 新增加的重要的数据类型,是 C++ 对 C 的最重要的发展C++ 程序书写自由,一行内可以写几个语句,一个语句可以分写在多行上好的、有使用价值的源程序都应当加上必要的注释 3、过程型程序设计1)过程型程序设计的特点
一个过程型程序应包括以下两方面内容:
对数据的描述(数据结构)
对操作的描述(算法)
程序 = 算法+数据结构
优点:
简单直观:过程型程序设计通常比较直观,易于理解和实现。程序按照步骤执行,逻辑清晰,对于小型项目或简单任务来说,这种直观性是优势。资源高效:在某些情况下,过程型程序设计可能更为资源高效,因为它通常不需要额外的抽象层,而直接执行任务步骤。易于调试:由于程序是按照顺序执行的,定位和调试问题相对较为容易。程序员可以逐步追踪代码的执行流程。缺点:
可维护性差:随着项目规模的增大,过程型程序设计可能导致代码难以维护。添加新功能或修改现有功能可能会影响整个程序,增加了出错的可能性。可重用性差:过程型程序设计通常缺乏良好的模块化和抽象,使得代码的重用性降低。相同或类似的功能可能需要在不同的地方重复实现。不适用大型项目:在大型、复杂的项目中,过程型程序设计可能难以应对复杂性和需求的变化。面向对象编程等其他范式更适合大型项目的组织和管理。2)程序设计流程图
算法的描述方法有用自然语言表示算法、流程图表示算法、N-S盒图表示算法、伪代码表示算法、计算机语言表示算法
4、面向对象程序设计1)面向对象程序设计的特点
Object-Oriented Programming,OOP
抽象,Abstraction,忽略对象的无关细节,强调对象的关键特征和行为 简化问题提高代码的可读性促进代码重用 封装,Encapsulation 数据隐藏:对象的内部数据对外部不可见,只有通过对象的接口才能访问和修改这些数据提高代码的可维护性:封装将数据和操作封装在一起,形成一个独立的单元。这使得代码更加模块化和易于维护。当需要修改对象的行为时,只需修改对象内部的实现细节,而无需修改外部代码。促进代码重用 继承,Inheritance,它允许子类继承父类的属性和方法,从而实现代码的复用和扩展。 代码复用扩展功能建立层次结构 多态,Polymorphism,它允许不同类型的对象对相同的消息做出不同的响应。例如同样是加法,把两个字符串加一起和把两个整数加一起的内涵是完全不同的 提高代码的可重用性简化接口设计2)如何进行面向对象程序设计
面向对象分析,Object Oriented Analysis,OOA面向对象设计,Object Oriented Design,OOD面向对象编程,Object Oriented Programming,OOP面向对象测试,Object Oriented Test,OOT面向对象维护,Object Oriented Soft Maintenance,OOSM面向对象程序设计需要遵循一定的步骤和原则,包括需求分析、架构设计、详细设计、编程实现以及封装、继承、多态和抽象等面向对象设计的原则。通过定义类和对象、实现类的内部实现、建立对象之间的联系以及调试和测试等步骤,可以开发出高效、可维护和可扩展的面向对象程序。
【C++】ThefundamentalsofC++由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【C++】ThefundamentalsofC++”
下一篇
老游戏回顾:d2