从C到C++ | C++入门(二)
发布人:shili8
发布时间:2024-12-25 02:38
阅读次数:0
**从C到C++ | C++入门(二)**在上一篇文章中,我们介绍了C语言的基本语法和特点。今天,我们将继续讨论C++语言的入门知识。
###什么是C++
C++是一种高级编程语言,于1985年由布莱恩·斯特劳斯坦(Bjarne Stroustrup)在C语言基础上开发出来。C++保留了C语言的语法和特点,同时又增加了一些新的功能,如类、对象、继承等。
### C++的优点相比于C语言,C++有以下几个优点:
* **面向对象**: C++支持面向对象编程,这使得程序设计更加容易和高效。
* **类型安全**: C++提供了强类型检查,这可以帮助我们避免一些错误。
* **性能**: C++的执行速度比C语言快很多。
### C++的基本语法####1. 变量声明在C++中,变量的声明和使用与C语言类似。例如:
cppint a =10; // int类型的变量a赋值为10double b =20.5; // double类型的变量b赋值为20.5
####2. 类型转换在C++中,类型转换与C语言类似。例如:
cppint a =10; double b = static_cast<double>(a); // 将int类型的a转换为double类型
####3. 函数声明在C++中,函数的声明和使用与C语言类似。例如:
cppvoid print(int a) { // void类型的函数print,参数为int类型的a std::cout << "Hello, World!" << std::endl; }
####4. 类在C++中,类是面向对象编程的基本概念。例如:
cppclass Person { public: std::string name; // 成员变量name int age; // 成员变量age};
### C++的继承和多态性####1. 继承在C++中,继承是面向对象编程中的一个基本概念。例如:
cppclass Animal { public: std::string name; }; class Dog : public Animal { // Dog类继承自Animal类public: int age; };
####2. 多态性在C++中,多态性是面向对象编程中的一个基本概念。例如:
cppclass Shape { public: virtual void draw() =0; // 虚函数draw}; class Circle : public Shape { // Circle类继承自Shape类public: void draw() override { // 重写虚函数draw std::cout << "Drawing a circle." << std::endl; } };
### C++的指针和引用####1. 指针在C++中,指针是内存地址的表示。例如:
cppint* p = new int; // int类型的指针p,指向一个int类型的变量*p =10; // 将指针p指向的变量赋值为10
####2. 引用在C++中,引用是指向某个对象的别名。例如:
cppint a =10; int& r = a; // int类型的引用r,指向a*r =20; // 将r指向的变量赋值为20
### C++的容器####1. vector在C++中,vector是动态数组的实现。例如:
cpp#include <vector> int main() { std::vector<int> vec = {10,20,30}; // int类型的vector vec return0; }
####2. list在C++中,list是双向链表的实现。例如:
cpp#include <list> int main() { std::list<int> lst = {10,20,30}; // int类型的list lst return0; }
####3. map在C++中,map是关联数组的实现。例如:
cpp#include <map> int main() { std::map<std::string, int> mp = {{"a",10}, {"b",20}}; // string类型的key和int类型的value的map mp return0; }
### C++的算法####1. sort在C++中,sort是对数组或vector进行排序的函数。例如:
cpp#include <algorithm> int main() { int arr[] = {10,20,30}; std::sort(arr, arr +3); // 对arr进行排序 return0; }
####2. find在C++中,find是对数组或vector进行查找的函数。例如:
cpp#include <algorithm> int main() { int arr[] = {10,20,30}; auto it = std::find(arr, arr +3,20); // 查找arr中的20 return0; }
### C++的异常处理####1. try-catch在C++中,try-catch是异常处理的基本结构。例如:
cppint main() { try { int a =10 /0; //除数为零时抛出异常 } catch (const std::exception& e) { // 捕获异常 std::cerr << "Exception caught: " << e.what() << ' '; } return0; }
####2. throw在C++中,throw是抛出异常的关键字。例如:
cppint main() { int a =10 /0; // 抛出除数为零的异常 return0; }
### C++的线程####1. thread在C++中,thread是线程的实现。例如:
cpp#include <thread> int main() { std::thread t([] { // 创建一个线程 std::cout << "Hello, World!" << std::endl; }); return0; }
####2. join在C++中,join是等待线程结束的函数。例如:
cpp#include <thread> int main() { std::thread t([] { // 创建一个线程 std::cout << "Hello, World!" << std::endl; }); t.join(); // 等待线程结束 return0; }
### C++的共享资源####1. mutex在C++中,mutex是互斥锁的实现。例如:
cpp#include <mutex> int main() { std::mutex mtx; // 创建一个互斥锁 { std::lock_guard<std::mutex> lock(mtx); // 锁住互斥锁 int a =10; } return0; }
####2. atomic在C++中,atomic是原子操作的实现。例如:
cpp#include <atomic> int main() { std::atomic<int> a(10); // 创建一个原子变量 int b = a.load(); // 加载原子变量 return0; }
### C++的智能指针####1. unique_ptr在C++中,unique_ptr是独占式智能指针的实现。例如:
cpp#include <memory> int main() { std::unique_ptr<int> p = std::make_unique<int>(); // 创建一个独占式智能指针 return0; }
####2. shared_ptr在C++中,shared_ptr是共享式智能指针的实现。例如:
cpp#include <memory> int main() { std::shared_ptr<int> p = std::make_shared<int>(); // 创建一个共享式智能指针 return0; }
### C++的容器适配器####1. stack在C++中,stack是栈的实现。例如:
cpp#include <stack> int main() { std::stack<int> s; // 创建一个栈 return0; }
####2. queue在C++中,queue是队列的实现。例如:
cpp#include <queue> int main() { std::queue<int> q; // 创建一个队列 return0; }
### C++的迭代器####1. iterator在C++中,iterator是迭代器的实现。例如:
cpp#include <vector> int main() { std::vector<int> v = {10,