在上一篇中,我们回顾了C++的发展历史,了解了这一编程语言是如何逐步演化而来的。在这一部分中,我们将深入探讨C++的核心特性,这些特性使其在众多编程语言中脱颖而出,为程序员提供了强大的工具,以解决复杂问题。
1. 面向对象编程
C++是一种面向对象的编程语言,支持封装、继承和多态等重要特性。通过将数据与操作数据的函数结合为一个对象,程序员能够创建更加模块化和可重用的代码。
案例:封装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| class Circle { private: double radius;
public: Circle(double r) : radius(r) {}
double area() { return 3.14 * radius * radius; } };
int main() { Circle circle(5); std::cout << "Circle area: " << circle.area() << std::endl; return 0; }
|
在这个例子中,Circle
类封装了半径的属性和计算面积的方法,利用private
关键字来保护数据。
2. 继承
继承允许我们基于已有的类创建新的类(子类)。这有助于代码重用,以及建立类之间的层次结构。
案例:继承
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class Shape { public: virtual double area() = 0; };
class Rectangle : public Shape { private: double width, height;
public: Rectangle(double w, double h) : width(w), height(h) {}
double area() override { return width * height; } };
int main() { Rectangle rect(4, 5); std::cout << "Rectangle area: " << rect.area() << std::endl; return 0; }
|
在这个例子中,Shape
类是一个基类,而Rectangle
类则继承了它,并实现了计算面积的具体方法。
3. 多态
多态是允许不同的类通过相同的接口调用不同的方法。通过多态,程序能够在运行时决定调用哪个类的方法。
案例:多态
1 2 3 4 5 6 7 8 9
| void printArea(Shape& shape) { std::cout << "Area: " << shape.area() << std::endl; }
int main() { Rectangle rect(4, 5); printArea(rect); return 0; }
|
在这个例子中,printArea
函数接受一个Shape
类型的引用,可以传递任何继承了Shape
的类的对象。
4. 泛型编程
C++提供了模板特性,支持泛型编程,使得函数和类可以操作任意类型的数据,从而提高了代码的灵活性和重用性。
案例:模板
1 2 3 4 5 6 7 8 9 10
| template <typename T> T add(T a, T b) { return a + b; }
int main() { std::cout << "Add int: " << add(5, 3) << std::endl; std::cout << "Add double: " << add(5.5, 3.2) << std::endl; return 0; }
|
上面的代码定义了一个模板函数add
,它可以接受任何类型的参数,只要它们支持+
运算符。
5. 标准模板库(STL)
C++提供了标准模板库(STL),其中包含了许多数据结构和算法,如vector
、list
、map
等。STL的使用大大简化了常见的编程任务。
案例:使用STL
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include <iostream> #include <vector>
int main() { std::vector<int> numbers = {1, 2, 3, 4, 5}; int sum = 0;
for (int num : numbers) { sum += num; }
std::cout << "Sum: " << sum << std::endl; return 0; }
|
在这个例子中,我们使用了vector
来存储整数,并通过范围for
循环来计算它们的总和。
结论
C++的这些特性使得它能够处理复杂的编程任务,提供了强大的工具和灵活性。在接下来的篇幅中,我们将讨论C++的应用领域,进一步了解它在现实世界中的实际应用。