【C++】C++入门
发布人:shili8
发布时间:2025-01-29 18:55
阅读次数:0
**C++入门指南**
欢迎阅读本文档,旨在为新手提供一个全面且易懂的C++入门教程。我们将一步步地介绍C++语言的基本概念、语法规则以及实践中的应用。
###1. C++的历史和特点C++是一种高级编程语言,由Bjarne Stroustrup在1985年开发于贝尔实验室。它是C语言的扩展,保留了C语言的兼容性,同时引入了面向对象、泛型等新特性。
**优点:**
* 高效:C++编译后的代码通常比其他高级语言快。
* 面向对象:支持类和继承,使程序设计更易于维护和扩展。
* 强类型:减少了错误的可能性,提高程序的可靠性。
###2. C++基本语法####2.1 变量声明
cpp// int型变量int a =10; // double型变量double b =3.14; // char型变量char c = 'A';
####2.2 常量
cppconst int PI =3.14159;
####2.3 条件语句
cppint a =10; if (a >5) { cout << "a大于5" << endl; } else { cout << "a小于或等于5" << endl; }
####2.4 循环语句
cppfor (int i =0; i < 10; i++) { cout << i << endl; } while (true) { cout << "Hello, World!" << endl; break; }
###3. C++的数据类型####3.1 整型* `int`:32位整数* `short int`:16位整数* `long int`:64位整数* `unsigned int`:无符号整数
cppint a =10;
####3.2 浮点型* `float`:32位浮点数* `double`:64位浮点数* `long double`:128位浮点数
cppdouble b =3.14;
####3.3 字符型* `char`:单个字符* `wchar_t`:宽字符
cppchar c = 'A';
###4. C++的运算符####4.1 算术运算符| 运算符 | 描述 |
| --- | --- |
| `+` | 相加 |
| `-` | 相减 |
| `*` | 相乘 |
| `/` | 相除 |
| `%` | 取余 |
cppint a =10; int b =3; cout << a + b << endl; // 输出:13
####4.2 关系运算符| 运算符 | 描述 |
| --- | --- |
| `==` | 等于 |
| `!=` | 不等于 |
| `<` | 小于 |
| `>` | 大于 |
| `<=` | 小于或等于 |
| `>=` | 大于或等于 |
cppint a =10; if (a >5) { cout << "a大于5" << endl; } else { cout << "a小于或等于5" << endl; }
####4.3 逻辑运算符| 运算符 | 描述 |
| --- | --- |
| `&&` | 与 |
| `||` | 或 |
cppbool a = true; bool b = false; cout << (a && b) << endl; // 输出:false
####4.4 赋值运算符| 运算符 | 描述 |
| --- | --- |
| `=` | 等于 |
| `+=` | 相加并赋值 |
| `-=` | 相减并赋值 |
| `*=` | 相乘并赋值 |
| `/=` | 相除并赋值 |
cppint a =10; a +=3; // 相加并赋值cout << a << endl; // 输出:13
###5. C++的函数####5.1 函数定义
cppvoid sayHello() { cout << "Hello, World!" << endl; }
####5.2 函数调用
cppsayHello();
####5.3 函数参数
cppint add(int a, int b) { return a + b; } cout << add(10,3) << endl; // 输出:13
###6. C++的类和对象####6.1 类定义
cppclass Person { public: string name; int age; void sayHello() { cout << "Hello, my name is " << name << " and I am " << age << " years old." << endl; } };
####6.2 对象创建
cppPerson person; person.name = "John"; person.age =30; person.sayHello();
###7. C++的继承和多态####7.1 类定义
cppclass Animal { public: void sound() { cout << "The animal makes a sound." << endl; } }; class Dog : public Animal { public: void sound() override { cout << "The dog barks." << endl; } };
####7.2 对象创建
cppDog dog; dog.sound(); // 输出:The dog barks.
###8. C++的泛型和模板####8.1 类定义
cpptemplate <typename T> class Container { public: void add(T value) { cout << "Adding a value of type " << typeid(value).name() << "." << endl; } };
####8.2 对象创建
cppContainer<int> intContainer; intContainer.add(10); Container<string> stringContainer; stringContainer.add("Hello, World!");
###9. C++的异常处理####9.1 try-catch语句
cpptry { cout << "Trying to divide by zero." << endl; int a =10 /0; } catch (const std::exception& e) { cout << "Caught an exception: " << e.what() << "." << endl; }
####9.2 throw语句
cppvoid divide(int a, int b) { if (b ==0) { throw std::runtime_error("Cannot divide by zero."); } cout << a / b << endl; } try { divide(10,0); } catch (const std::exception& e) { cout << "Caught an exception: " << e.what() << "." << endl; }
###10. C++的标准库####10.1 iostream头文件
cpp#include <iostream> int main() { int a =10; std::cout << a << std::endl; // 输出:10 return0; }
####10.2 string类
cpp#include <string> int main() { std::string str = "Hello, World!"; std::cout << str << std::endl; // 输出:Hello, World! return0; }
###11. C++的内存管理####11.1 new运算符
cppint* ptr = new int(10); std::cout << *ptr << std::endl; // 输出:10delete ptr;
####11.2 delete运算符
cppint* ptr = new int(10); std::cout << *ptr << std::endl; // 输出:10delete ptr;
###12. C++的智能指针####12.1 unique_ptr类
cpp#include <memory> int main() { std::unique_ptr<int> ptr = std::make_unique<int>(10); std::cout << *ptr << std::endl; // 输出:10 return0; }
####12.2 shared_ptr类
cpp#include <memory> int main() { std::shared_ptr<int> ptr1 = std::make_shared<int>(10); std::shared_ptr<int> ptr2 = ptr1; std::cout << *ptr1 << std::endl; // 输出:10 return0; }
###13. C++的线程和并发####13.1 thread类
cpp#include <thread> void printHello() { std::cout