C++学习
发布人:shili8
发布时间:2025-02-25 02:12
阅读次数:0
**C++学习指南**
C++是一种高级编程语言,广泛用于操作系统、游戏开发、Web浏览器等领域。它的设计目标是提供一种既能实现高性能又能保持高灵活性的编程语言。
###1. C++基本概念####1.1 变量和数据类型在C++中,变量是用来存储值的空间。每个变量都有一个特定的数据类型,决定了它可以存储什么样的值。
cpp// int型变量int a =10; // double型变量double b =3.14;
####1.2 常量在C++中,可以使用const关键字来定义常量。常量是不能被修改的变量。
cpp// const int型常量const int PI =3.14159;
####1.3 变量作用域变量的作用域决定了它可以在程序中哪里使用。C++支持块作用域、函数作用域等多种变量作用域。
cpp// 块作用域变量{ int x =10; } // 函数作用域变量void test() { int y =20; }
###2. C++控制结构####2.1 if语句if语句用于根据条件来执行不同的代码块。
cppint a =10; if (a >5) { cout << "a大于5" << endl; } else { cout << "a小于或等于5" << endl; }
####2.2 switch语句switch语句用于根据一个变量的值来执行不同的代码块。
cppint a =10; switch (a) { case1: cout << "a等于1" << endl; break; case5: cout << "a等于5" << endl; break; default: cout << "a不等于1或5" << endl; }
####2.3 for循环for循环用于根据一个变量的值来执行一段代码。
cppint a =10; for (int i =0; i < a; i++) { cout << "i=" << i << endl; }
####2.4 while循环while循环用于根据一个条件来执行一段代码。
cppint a =10; int i =0; while (i < a) { cout << "i=" << i << endl; i++; }
###3. C++函数####3.1 函数定义在C++中,函数是用来执行一段代码的块。函数可以接收参数,并返回值。
cpp// int型函数int add(int a, int b) { return a + b; } // void型函数void test() { cout << "Hello World!" << endl; }
####3.2 函数调用在C++中,可以使用函数名来调用函数。
cppint result = add(10,20); cout << "result=" << result << endl; test();
###4. C++类和对象####4.1 类定义在C++中,类是用来描述一个对象的特征和行为的模板。类可以包含变量、函数等成员。
cppclass Person { public: string name; int age; void sayHello() { cout << "Hello, my name is " << name << " and I am " << age << " years old." << endl; } };
####4.2 对象创建在C++中,可以使用类名来创建对象。
cppPerson person; person.name = "John"; person.age =30; person.sayHello();
###5. C++继承和多态####5.1 继承在C++中,继承是指一个类可以从另一个类继承成员。继承可以使用public、protected、private关键字来指定继承方式。
cppclass Animal { public: void eat() { cout << "Eating..." << endl; } }; class Dog : public Animal { public: void bark() { cout << "Barking..." << endl; } };
####5.2 多态在C++中,多态是指一个函数或变量可以有多个不同的值。多态可以使用虚函数来实现。
cppclass Animal { public: virtual void sound() { cout << "Animal makes a sound." << endl; } }; class Dog : public Animal { public: void sound() override { cout << "Dog barks." << endl; } };
###6. C++异常处理####6.1 异常定义在C++中,可以使用try-catch语句来捕获和处理异常。
cppvoid test() { try { int a =10 /0; } catch (const std::exception& e) { cout << "Exception caught: " << e.what() << endl; } }
####6.2 异常抛出在C++中,可以使用throw关键字来抛出异常。
cppvoid test() { throw std::runtime_error("Error occurred."); }
###7. C++模板元编程####7.1 模板定义在C++中,模板是用来描述一个函数或类的通用形式。模板可以使用template关键字来定义。
cpptemplate <typename T> T max(T a, T b) { return (a > b) ? a : b; }
####7.2 模板实例化在C++中,可以使用模板名来实例化模板。
cppint result = max(10,20); double result2 = max(3.14,5.67);
###8. C++智能指针####8.1 智能指针定义在C++中,智能指针是用来管理内存的类。智能指针可以使用unique_ptr和shared_ptr等类型来实现。
cppstd::unique_ptr<int> ptr = std::make_unique<int>();
####8.2 智能指针使用在C++中,可以使用智能指针来管理内存。
cpp*ptr =10; cout << *ptr << endl;
###9. C++线程和并发####9.1 线程定义在C++中,线程是用来执行一段代码的单元。线程可以使用thread类来实现。
cppvoid test() { std::thread thread(test); thread.join(); }
####9.2 并发编程在C++中,可以使用并发编程来提高程序性能。
cppstd::vector<std::thread> threads; for (int i =0; i < 10; i++) { threads.emplace_back(test); } for (auto& thread : threads) { thread.join(); }
###10. C++容器####10.1 容器定义在C++中,容器是用来存储和管理数据的类。容器可以使用vector、list、map等类型来实现。
cppstd::vector<int> vec = {1,2,3};
####10.2 容器使用在C++中,可以使用容器来存储和管理数据。
cppvec.push_back(4); cout << vec[0] << endl;
###11. C++算法####11.1 算法定义在C++中,算法是用来处理数据的函数。算法可以使用sort、find等函数来实现。
cppstd::vector<int> vec = {3,2,1}; std::sort(vec.begin(), vec.end());
####11.2 算法使用在C++中,可以使用算法来处理数据。
cppauto it = std::find(vec.begin(), vec.end(),2); if (it != vec.end()) { cout << *it << endl; }
###12. C++迭代器####12.1 迭代器定义在C++中,迭代器是用来访问容器元素的类。迭代器可以使用begin和end函数来实现。
cppstd::vector<int> vec = {1,2,3}; auto it = vec.begin();
####12.2 迭代器使用在C++中,可以使用迭代器来访问容器元素。
cppwhile (it != vec.end()) { cout << *it