【C++】总结2
发布人:shili8
发布时间:2025-03-06 18:05
阅读次数:0
**C++语言总结**
C++是一种高级编程语言,最初由布莱恩·史密斯(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)设计。它是C语言的继承者,并在1985年由Bjarne Stroustrup发明。C++语言提供了面向对象编程、泛型编程等特性,使其成为一种非常强大的编程语言。
**基本语法**
### 变量和数据类型在C++中,变量是用来存储值的空间。每个变量都有一个名称和一个数据类型。C++支持以下几种基本数据类型:
* 整型(int):表示整数值。
* 浮点型(float):表示浮点数值。
* 双精度浮点型(double):表示双精度浮点数值。
* 布尔型(bool):表示布尔值(true或false)。
* 字符型(char):表示单个字符。
cpp// 声明一个整型变量int age =25; // 声明一个浮点型变量float height =1.75f; // 声明一个双精度浮点型变量double weight =60.0; // 声明一个布尔型变量bool isAdmin = true; // 声明一个字符型变量char name[10] = "John";
### 控制结构控制结构是用来控制程序执行流程的语句。C++支持以下几种控制结构:
* 条件语句(if-else):用于根据条件选择执行不同的代码块。
* 循环语句(for、while、do-while):用于重复执行某段代码。
cpp// 条件语句示例int score =80; if (score >=90) { cout << "Excellent!" << endl; } else if (score >=70) { cout << "Good job!" << endl; } else { cout << "Keep trying..." << endl; } // 循环语句示例for (int i =0; i < 5; i++) { cout << "Hello, world! " << i << endl; }
### 函数函数是用来封装某段代码的模块。C++支持以下几种函数:
* 全局函数:定义在全局作用域内的函数。
* 局部函数:定义在函数内部的函数。
cpp// 全局函数示例int add(int a, int b) { return a + b; } // 局部函数示例void printArray(int arr[], int size) { for (int i =0; i < size; i++) { cout << arr[i] << " "; } }
### 类和对象类是用来描述某种事物的模板。C++支持以下几种类:
* 自定义类:用户自定义的类。
* 内置类:内置于语言中的类。
cpp// 自定义类示例class Person { public: string name; int age; void sayHello() { cout << "Hello, my name is " << name << " and I'm " << age << " years old." << endl; } }; // 内置类示例Person person; person.name = "John"; person.age =25; person.sayHello();
### 继承继承是用来实现类之间关系的机制。C++支持以下几种继承:
* 公共继承:子类继承父类所有成员。
* 私有继承:子类继承父类私有成员。
cpp// 公共继承示例class Animal { public: string name; void eat() { cout << "I'm eating..." << endl; } }; class Dog : public Animal { public: void bark() { cout << "Woof woof!" << endl; } };
### 多态多态是指同一个函数或方法在不同情况下表现出不同的行为。C++支持以下几种多态:
* 函数多态:函数的重载和覆盖。
* 操作符多态:操作符的重载。
cpp// 函数多态示例class Shape { public: virtual void draw() =0; }; class Circle : public Shape { public: void draw() override { cout << "Drawing a circle..." << endl; } };
### 模板模板是用来定义泛型函数或类的机制。C++支持以下几种模板:
* 函数模板:定义泛型函数。
* 类模板:定义泛型类。
cpp// 函数模板示例template <typename T> T max(T a, T b) { return (a > b) ? a : b; } // 类模板示例template <typename T> class Stack { public: void push(T element) { // ... } T pop() { // ... } };
### 智能指针智能指针是用来管理动态内存的类。C++支持以下几种智能指针:
* unique_ptr:独占式智能指针。
* shared_ptr:共享式智能指针。
cpp// unique_ptr示例unique_ptr<int> ptr(new int(10)); cout << *ptr << endl; // shared_ptr示例shared_ptr<int> ptr1(new int(10)); shared_ptr<int> ptr2 = ptr1; cout << *ptr1 << endl; //10cout << *ptr2 << endl; //10
### lambda表达式lambda表达式是用来定义匿名函数的语法。C++支持以下几种lambda表达式:
* 匿名函数:定义在某个地方但没有名称。
* 捕获变量:捕获外部变量。
cpp// 匿名函数示例auto add = [](int a, int b) { return a + b; }; cout << add(3,4) << endl; // 捕获变量示例auto print = [x](int y) { cout << x << " " << y << endl; }; print(5); //105
### 变参函数变参函数是用来定义可变参数函数的语法。C++支持以下几种变参函数:
* std::va_list:用于存储可变参数。
* va_start、va_end:用于操作可变参数。
cpp// 变参函数示例void print(int a, int b, ...) { va_list args; va_start(args, b); for (int i =0; i < 3; i++) { cout << va_arg(args, int) << " "; } va_end(args); } print(1,2,3,4,5); //123
### std::tuplestd::tuple是用来定义元组的类。C++支持以下几种std::tuple:
* 元组:用于存储多个值。
* std::get:用于获取元组中的元素。
cpp// std::tuple示例std::tuple<int, int, int> tuple(1,2,3); cout << std::get<0>(tuple) << endl; //1
### std::arraystd::array是用来定义固定大小数组的类。C++支持以下几种std::array:
* 固定大小数组:用于存储多个值。
* std::size、std::data:用于操作数组。
cpp// std::array示例std::array<int,3> arr = {1,2,3}; cout << std::size(arr) << endl; //3
### std::vectorstd::vector是用来定义动态大小数组的类。C++支持以下几种std::vector:
* 动态大小数组:用于存储多个值。
* push_back、pop_back、size、data:用于操作数组。
cpp// std::vector示例std::vector<int> vec = {1,2,3}; vec.push_back(4); cout << vec.size() << endl; //4
### std::setstd::set是用来定义集合的类。C++支持以下几种std::set:
* 集合:用于存储唯一值。
* insert、erase、find、size:用于操作集合。
cpp// std::set示例std::set<int> set = {1,2,3}; set.insert(4); cout << set.size() << endl; //4
### std::mapstd::map是用来