C++ 编程基础入门教程

1. 什么是 C++?

C++ 是一种通用编程语言,由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始开发。它最初被称为 "C with Classes"(带类的 C),旨在为 C 语言增加面向对象编程的特性。C++ 继承了 C 语言的高效和底层控制能力,同时引入了类、对象、继承、多态等现代编程概念,使其成为系统编程、游戏开发、高性能计算等领域的首选语言之一。

2. 第一个 C++ 程序

让我们从一个经典的 "Hello, World!" 程序开始:

cpp 复制代码
#include <iostream>

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

代码解析:

  • #include <iostream>:引入输入输出流库,使我们能使用 cout 和 endl。
  • int main():程序的主函数,是程序执行的入口点。
  • std::cout << "Hello, World!":将字符串输出到控制台。
  • std::endl:输出换行符并刷新缓冲区。
  • return 0;:表示程序正常结束。

3. C++ 基本语法要素

3.1 变量与数据类型

C++ 是静态类型语言,变量在使用前必须声明其类型。

cpp 复制代码
// 基本数据类型示例
int age = 25;           // 整数
double price = 99.99;   // 双精度浮点数
char grade = 'A';       // 单个字符
bool is_valid = true;   // 布尔值
std::string name = "Alice"; // 字符串(需要 #include <string>)

3.2 控制结构

条件语句:

cpp 复制代码
int score = 85;
if (score >= 90) {
    std::cout << "优秀" << std::endl;
} else if (score >= 60) {
    std::cout << "及格" << std::endl;
} else {
    std::cout << "不及格" << std::endl;
}

循环语句:

cpp 复制代码
// for 循环
for (int i = 0; i < 5; i++) {
    std::cout << i << " ";
}

// while 循环
int count = 0;
while (count < 3) {
    std::cout << "循环中..." << std::endl;
    count++;
}

4. 函数

函数是执行特定任务的代码块,可以提高代码的复用性和可读性。

cpp 复制代码
#include <iostream>

// 函数声明
int add(int a, int b);

int main() {
    int result = add(5, 3);
    std::cout << "5 + 3 = " << result << std::endl;
    return 0;
}

// 函数定义
int add(int a, int b) {
    return a + b;
}

5. 面向对象编程基础

5.1 类与对象

cpp 复制代码
#include <iostream>
#include <string>

// 定义一个类
class Student {
private:
    std::string name;
    int age;
    
public:
    // 构造函数
    Student(std::string n, int a) : name(n), age(a) {}
    
    // 成员函数
    void display() {
        std::cout << "姓名:" << name << ", 年龄:" << age << std::endl;
    }
};

int main() {
    // 创建对象
    Student stu1("张三", 20);
    stu1.display();
    
    return 0;
}

5.2 继承

cpp 复制代码
// 基类
class Animal {
public:
    void eat() {
        std::cout << "动物在吃东西" << std::endl;
    }
};

// 派生类
class Dog : public Animal {
public:
    void bark() {
        std::cout << "汪汪!" << std::endl;
    }
};

int main() {
    Dog myDog;
    myDog.eat();  // 继承自 Animal
    myDog.bark(); // Dog 自己的方法
    return 0;
}

6. 标准模板库(STL)简介

STL 提供了丰富的容器、算法和迭代器,是 C++ 编程的重要部分。

cpp 复制代码
#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    // 使用 vector 容器
    std::vector<int> numbers = {5, 2, 8, 1, 9};
    
    // 排序
    std::sort(numbers.begin(), numbers.end());
    
    // 遍历输出
    for (int num : numbers) {
        std::cout << num << " ";
    }
    
    return 0;
}

7. 学习建议与资源

  1. 实践为主:多写代码,从简单程序开始,逐步增加复杂度。
  2. 理解原理:不仅要会用,还要理解背后的原理(如指针、内存管理)。
  3. 阅读优秀代码:学习开源项目中的 C++ 代码风格和设计模式。
  4. 参考资源 :
    • 书籍:《C++ Primer》、《Effective C++》
    • 网站:cplusplus.com、cppreference.com
    • 在线平台:LeetCode、牛客网(用于练习)

8. 常见错误与调试

cpp 复制代码
#include <iostream>

int main() {
    // 常见错误1:未初始化变量
    int x; // 警告:未初始化
    // int x = 0; // 正确做法
    
    // 常见错误2:数组越界
    int arr[3] = {1, 2, 3};
    // std::cout << arr[5]; // 错误:越界访问
    
    // 使用调试技巧
    #ifdef DEBUG
    std::cout << "调试信息:" << __LINE__ << std::endl;
    #endif
    
    return 0;
}

下一步建议:

  • 可以补充「指针与内存管理」章节
  • 可以添加「文件操作」示例
  • 可以扩展「异常处理」内容
相关推荐
Amos_Web42 分钟前
Markdonw语法
开发语言·前端·javascript
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 回顾和今日内容介绍
java·开发语言·交友
初心未改HD1 小时前
DSH Skill开发实战:SKILL.md是给LLM看的操作手册,不是给人看的README,踩了4个坑
java·大数据·开发语言
Wang's Blog2 小时前
Java 项目实战: 交友项目 - SpringData-Mongo 环境搭建和 CRUD
java·开发语言·交友
凯瑟琳.奥古斯特2 小时前
动态调优IoU提升OCR文本合并精度
开发语言·python·算法
陌陌龙2 小时前
【紧急预警!PHP 核弹级漏洞 php2shell】
开发语言·php
白露与泡影2 小时前
一线 Java 后端面试八股(2026 更新版,含完整答案)
java·开发语言·面试
企业解惑小能手-域智盾系统2 小时前
内网监控软件策略不生效、日志缺失?一套从现象到根因的排查框架
开发语言·php·域智盾
1024奇点3 小时前
【仓颉语言入门 · 第二篇 第 10 课】
开发语言·数据库·ide·mysql·开源