写在前面
工作需要,重学C++,实在是太痛苦了,大二的时候应试就没学会!!
进入正题
1.编程是怎么回事
C++在百科上的解释是一种静态数据类型检查 的、支持多种编程范式(面向过程与面向对象等)的通用程序设计语言。通俗来说,为了表达事物之间的可联系性,经常用动词verb将各个事物或客体的对象之间联系起来,这些用动词缀连起来的句子就是C++的表达式,动词在这里就是C++的函数;将句子按照逻辑关系组合就形成文章,也就是C++ 的程序。
2.拿来主义
C++继承了C的特性和优点,还借鉴了其他程序设计语言的优点,C++从Simula拿来了类的概念;从Algol68拿来了操作符重载、引用以及在 任何地方声明变量的能力;从BCPL拿来了“//”注释;从Ada拿来了模板、名字空间;从Ada、Clu和ML拿来了异常处理等。同时,C++吸收了很多新的特性,其中包括虚函数、函数名和操作符重载、常数、用 户可控制的自由空间储存区、改良的类型检查及新的双斜线“//”单行注释风格。
3.面向对象
C++首先是作为一门面向对象(OOP)的程序设计语言而闻名的。在C语言的基础上,C++添加了“类”的概念,从而可以很准确地表达出面向对象思想中封装、继承和多态的机制。所以,C++也可以用于面向对象程序设计,而这也是它最主要的应用状态。
一些重要的概念和要点
1.类与对象:类包含了数据成员和成员函数,数据成员表示对象的属性,成员函数表示对象的行为。通过实例化对象,我们可以使用类中的数据和函数。
2.封装:C++ 支持封装,即将数据和操作数据的函数封装在类中,对外部隐藏实现细节,只暴露必要的接口。
3.继承:继承是面向对象编程的一个重要特性,允许一个类(派生类)继承另一个类(基类)的属性和方法。派生类可以拥有基类的所有成员,并且可以添加自己的新成员。
4.多态:多态允许以统一的方式使用不同的类对象,即不同的对象可以使用相同的接口来执行不同的操作。这通过虚函数和函数重写实现。
5.标准模板库(STL):C++ 提供了一个强大的标准模板库,包含了各种容器类(如向量、列表、映射等)和算法(如排序、查找等),可以大大提高编程效率。通俗的理解,容器就是STL中的瓶瓶罐罐,STL中的容器是用来管理数据的,在容器诞生之前,程序员要使用数组来保存和管理程序中的大量数据。使用数组,虽然能够达到目的,但是程序员需要自己做很多事情,比如管理内存、维护数组中保存的数据、防止数组访问越界等。相比于数组,容器更加强大而灵活:它们的容量可以动态地扩充和缩减;它们可以自己管理内存;它们可以记住自己包含了多少数据元素;它们限定了自己所支持的操作复杂性;总的来讲,容器就是能够保存某种类型数据的类。它就像一个书架一样,把大量的数据组织起来对其进行管理,以便于算法对数据的访问。
按照组织数据的方式不同,STL中的容器分为顺序容器(sequence container)和关联容器(associative container)两种。
6.命名空间:命名空间是用于避免命名冲突的一种机制,将相同名称的类、函数、变量等放在一个命名空间中,可以使代码更加模块化和可维护。
7.动态内存管理:C++ 支持动态内存分配和释放,通过 new 和 delete 运算符来动态地创建和销毁对象,这使得内存管理更加灵活。
8.输入输出流:C++ 提供了流的概念,可以通过输入流(如 cin)接收用户输入,通过输出流(如 cout)向用户输出结果。
最后,可以使用C++编写一个简单的代码实例,例如计算两个数的和。
#include <iostream>
// 使用System名字空间,这是C++中的编程经验
using namespace std;
int main() {
int num1, num2;
// 输入两个整数
cout << "请输入第一个整数:";
cin >> num1;
cout << "请输入第二个整数:";
cin >> num2;
// 计算并输出两个数的和
int sum = num1 + num2;
cout << "两个数的和为:" << sum << endl;
return 0;
}
上述代码示例中,我们使用 iostream 头文件中的 cout 和 cin 来进行输入输出。cout 用于输出结果到屏幕,cin 用于接收用户输入。在 main() 函数中,我们首先声明了两个整数变量 num1 和 num2,然后通过 cin 分别接收用户输入的两个整数值。接下来,我们计算这两个整数的和,并将结果使用 cout 输出到屏幕上。当你运行这个程序时,它会要求你输入两个整数,并返回它们的和。