. C++简介

C++是一种通用的、面向对象的编程语言,由Bjarne Stroustrup于1985年在贝尔实验室开发。它是C语言的扩展,增加了面向对象编程的特性。

主要特点:

  • 高效性:接近硬件操作
  • 面向对象:支持封装、继承和多态
  • 通用性:可用于系统/应用软件开发
  • 丰富的标准库

2. 基本语法结构

Hello World 程序

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

#include <iostream>  // 输入输出流头文件

int main() {        // 主函数,程序入口
    std::cout << "Hello, World!" << std::endl;  // 输出语句
    return 0;       // 返回0表示程序正常结束
}
基本组成部分
  • 头文件引入:#include <iostream>
  • 主函数:int main()
  • 命名空间:std::(标准命名空间)
  • 语句结束:分号;

3. 数据类型

基本数据类型

类型

描述

大小(字节)

int

整型

4

float

单精度浮点型

4

double

双精度浮点型

8

char

字符型

1

bool

布尔型(true/false)

1

void

无类型

-

类型修饰符
  • signed:有符号(默认)
  • unsigned:无符号
  • short:短整型
  • long:长整型
变量声明与初始化

代码语言:javascript

代码运行次数:0

运行

AI代码解释

int a = 10;         // 声明并初始化
float b(3.14);      // 构造函数式初始化
char c{'A'};        // 列表初始化(C++11)
auto d = 5.67;      // 自动类型推断(C++11)

4. 运算符

算术运算符

+, -, *, /, %(取模), ++(自增), --(自减)

关系运算符

==, !=, >, <, >=, <=

逻辑运算符

&&(与), ||(或), !(非)

位运算符

&(按位与), |(按位或), ^(按位异或), ~(按位取反), <<(左移), >>(右移)

赋值运算符

=, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |=

5. 控制结构

条件语句

代码语言:javascript

代码运行次数:0

运行

AI代码解释

// if-else
if (condition) {
    // 代码块
} else if (another_condition) {
    // 代码块
} else {
    // 代码块
}

// switch-case
switch (variable) {
    case value1:
        // 代码块
        break;
    case value2:
        // 代码块
        break;
    default:
        // 代码块
}
循环结构

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

// for循环
for (初始化; 条件; 增量) {
    // 代码块
}

// while循环
while (条件) {
    // 代码块
}

// do-while循环
do {
    // 代码块
} while (条件);
跳转语句
  • break:跳出循环或switch
  • continue:跳过当前循环迭代
  • return:从函数返回
  • goto:跳转到标签(不推荐使用)

6. 函数

函数定义

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

返回类型 函数名(参数列表) {
    // 函数体
    return 返回值;  // 如果返回类型不是void
}
函数示例

代码语言:javascript

代码运行次数:0

运行

AI代码解释

int add(int a, int b) {
    return a + b;
}
函数特性
  • 函数重载:同名函数,不同参数列表
  • 默认参数:void func(int a, int b = 10)
  • 内联函数:inline关键字
  • 递归函数:函数调用自身

7. 数组与字符串

数组

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

int arr[5];            // 声明大小为5的整型数组
int arr2[] = {1,2,3};  // 声明并初始化
arr[0] = 10;           // 访问第一个元素
字符串

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

char str1[] = "Hello";       // C风格字符串
std::string str2 = "World";  // C++字符串对象
常用字符串操作

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

#include <string>
std::string s = "Hello";
s.length();      // 获取长度
s += " World";  // 字符串连接
s.substr(1,3);  // 子字符串
s.find("ell");  // 查找子串

8. 指针与引用

指针

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

int var = 20;
int *ptr = &var;  // ptr指向var的地址
*ptr = 30;        // 通过指针修改变量值
引用

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

int var = 20;
int &ref = var;   // ref是var的引用
ref = 30;         // 修改引用即修改变量
动态内存分配

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

int *p = new int;    // 动态分配
*p = 10;
delete p;            // 释放内存

int *arr = new int[10];  // 动态数组
delete[] arr;            // 释放数组

9. 面向对象编程

类与对象

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

class MyClass {       // 类定义
public:               // 访问修饰符
    int publicVar;    // 公有成员变量
    void publicFunc() { // 公有成员函数
        // 函数体
    }
private:
    int privateVar;   // 私有成员变量
};

MyClass obj;         // 创建对象
obj.publicVar = 10;  // 访问公有成员
obj.publicFunc();    // 调用公有方法
构造函数与析构函数

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

class MyClass {
public:
    MyClass() {  // 默认构造函数
        // 初始化代码
    }
    
    MyClass(int a) {  // 参数化构造函数
        // 初始化代码
    }
    
    ~MyClass() {  // 析构函数
        // 清理代码
    }
};
继承

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

class Base {
public:
    void baseFunc() {}
};

class Derived : public Base {
public:
    void derivedFunc() {}
};
多态

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

class Animal {
public:
    virtual void makeSound() {  // 虚函数
        std::cout << "Animal sound" << std::endl;
    }
};

class Dog : public Animal {
public:
    void makeSound() override {  // 重写虚函数
        std::cout << "Bark" << std::endl;
    }
};

10. 标准模板库(STL)

容器

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

#include <vector>
#include <list>
#include <map>
#include <set>

std::vector<int> vec;      // 动态数组
std::list<std::string> lst; // 双向链表
std::map<std::string, int> mp; // 键值对集合
std::set<double> st;       // 唯一元素集合
算法

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

#include <algorithm>
std::vector<int> v = {4,2,5,1,3};

std::sort(v.begin(), v.end());  // 排序
auto it = std::find(v.begin(), v.end(), 5);  // 查找
std::reverse(v.begin(), v.end());  // 反转
迭代器

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

std::vector<int> vec = {1,2,3,4,5};
for (auto it = vec.begin(); it != vec.end(); ++it) {
    std::cout << *it << " ";
}

11. 文件操作

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

#include <fstream>

// 写入文件
std::ofstream outFile("test.txt");
outFile << "Hello File!" << std::endl;
outFile.close();

// 读取文件
std::ifstream inFile("test.txt");
std::string line;
while (std::getline(inFile, line)) {
    std::cout << line << std::endl;
}
inFile.close();

12. 异常处理

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

try {
    // 可能抛出异常的代码
    if (error_condition) {
        throw std::runtime_error("Error message");
    }
} catch (const std::runtime_error& e) {
    std::cerr << "Runtime error: " << e.what() << std::endl;
} catch (...) {
    std::cerr << "Unknown error occurred" << std::endl;
}

13. 现代C++特性(C++11及以后)

自动类型推断

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

auto x = 5;        // x是int类型
auto y = 3.14;     // y是double类型
范围for循环

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

std::vector<int> vec = {1,2,3,4,5};
for (auto num : vec) {
    std::cout << num << " ";
}
Lambda表达式

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

auto sum = [](int a, int b) { return a + b; };
std::cout << sum(3, 4);  // 输出7
智能指针

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

#include <memory>
std::unique_ptr<int> ptr1(new int(10));  // 独占指针
std::shared_ptr<int> ptr2 = std::make_shared<int>(20);  // 共享指针

14. 命名空间

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

namespace MyNamespace {
    int value;
    void func() {}
}

// 使用命名空间
MyNamespace::value = 10;
MyNamespace::func();

// 或者使用using声明
using namespace MyNamespace;
value = 20;
func();

15. 预处理器指令

cpp

代码语言:javascript

代码运行次数:0

运行

AI代码解释

#define PI 3.14159          // 定义宏
#include <iostream>         // 包含头文件
#ifdef DEBUG                // 条件编译
    // 调试代码
#endif


 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐