Appearance
C++ 入门
本章将介绍C++语言的历史、特点、开发环境搭建,以及编写第一个C++程序。
C++ 简介
C++的历史
cpp
/*
* C++发展历史:
* 1979年 - Bjarne Stroustrup在贝尔实验室开始开发"C with Classes"
* 1983年 - 正式命名为C++
* 1985年 - 发布第一版《The C++ Programming Language》
* 1998年 - ISO C++标准(C++98)发布
* 2003年 - C++03标准发布(主要是bug修复)
* 2011年 - C++11标准发布(重大更新)
* 2014年 - C++14标准发布
* 2017年 - C++17标准发布
* 2020年 - C++20标准发布
* 2023年 - C++23标准发布
*/C++的特点
cpp
/*
* C++的主要特点:
*
* 1. 多范式编程
* - 面向过程:类似C语言的函数式编程
* - 面向对象:类、继承、多态
* - 泛型编程:模板
*
* 2. 高性能
* - 直接操作内存
* - 零开销抽象
* - 编译时优化
*
* 3. 兼容C语言
* - 大部分C代码可以在C++中编译
* - 可以调用C库函数
*
* 4. 丰富的标准库
* - STL容器
* - 算法库
* - 智能指针
*/开发环境搭建
Windows环境
cpp
/*
* Windows开发环境搭建:
*
* 方案一:Visual Studio(推荐新手)
* 1. 下载Visual Studio Community(免费版)
* 2. 安装时选择"使用C++的桌面开发"
* 3. 创建新项目 -> 空项目 -> 添加源文件
*
* 方案二:MinGW-w64 + VS Code
* 1. 下载MinGW-w64编译器
* 2. 配置环境变量PATH
* 3. 安装VS Code和C++扩展
* 4. 配置tasks.json和launch.json
*
* 验证安装:
* 打开命令行,输入:g++ --version
*/Linux环境
cpp
/*
* Linux开发环境搭建:
*
* Ubuntu/Debian:
* sudo apt update
* sudo apt install build-essential gdb
*
* CentOS/RHEL:
* sudo yum groupinstall "Development Tools"
*
* 验证安装:
* g++ --version
* gdb --version
*/macOS环境
cpp
/*
* macOS开发环境搭建:
*
* 1. 安装Xcode Command Line Tools:
* xcode-select --install
*
* 2. 或安装完整Xcode(从App Store)
*
* 3. 安装Homebrew包管理器(可选):
* /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
*
* 4. 使用Homebrew安装GCC:
* brew install gcc
*
* 验证安装:
* clang++ --version
*/第一个C++程序
Hello World
cpp
// 这是单行注释,用于解释代码
/*
* 这是多行注释
* 可以跨越多行
*/
// #include是预处理指令,用于包含头文件
// <iostream>是C++标准输入输出库
#include <iostream>
// using namespace std; 表示使用标准命名空间
// 这样可以直接使用cout、endl等,而不需要写std::cout
using namespace std;
// main函数是程序的入口点
// int表示返回类型为整数
// 每个C++程序必须有且只有一个main函数
int main() {
// cout是标准输出流对象(Character Output)
// <<是流插入运算符
// endl是换行符,并刷新输出缓冲区
cout << "Hello, World!" << endl;
// 返回0表示程序正常结束
// 非零值表示程序异常结束
return 0;
}不使用using namespace
cpp
#include <iostream>
// 不使用using namespace std,需要加std::前缀
// 这种方式更规范,避免命名冲突
int main() {
// std::cout 表示标准命名空间中的cout
std::cout << "Hello, C++!" << std::endl;
return 0;
}带用户交互的程序
cpp
#include <iostream>
#include <string> // 包含string头文件以使用字符串类型
using namespace std;
int main() {
// 定义一个字符串变量存储用户名
string name;
// cout输出提示信息
cout << "请输入你的名字: ";
// cin从标准输入读取数据
// >>是流提取运算符
cin >> name;
// 输出问候信息
cout << "你好, " << name << "!" << endl;
cout << "欢迎学习C++编程!" << endl;
return 0;
}编译和运行
使用g++编译
cpp
/*
* 编译C++程序的步骤:
*
* 1. 预处理(Preprocessing)
* - 处理#include指令
* - 展开宏定义
* - 条件编译
*
* 2. 编译(Compilation)
* - 语法分析
* - 生成汇编代码
*
* 3. 汇编(Assembly)
* - 生成目标文件(.o或.obj)
*
* 4. 链接(Linking)
* - 链接库文件
* - 生成可执行文件
*/
/*
* 常用编译命令:
*
* 编译单个文件:
* g++ hello.cpp -o hello
*
* 运行程序:
* ./hello (Linux/macOS)
* hello.exe (Windows)
*
* 启用C++11标准:
* g++ -std=c++11 hello.cpp -o hello
*
* 启用C++17标准:
* g++ -std=c++17 hello.cpp -o hello
*
* 启用所有警告:
* g++ -Wall hello.cpp -o hello
*
* 包含调试信息:
* g++ -g hello.cpp -o hello
*
* 生成优化代码:
* g++ -O2 hello.cpp -o hello
*/编译多个文件
cpp
/*
* 多文件编译示例:
*
* 假设有以下文件:
* - main.cpp(主程序)
* - utils.cpp(工具函数实现)
* - utils.h(工具函数声明)
*
* 方法一:一起编译
* g++ main.cpp utils.cpp -o myprogram
*
* 方法二:分别编译后链接
* g++ -c main.cpp -o main.o
* g++ -c utils.cpp -o utils.o
* g++ main.o utils.o -o myprogram
*
* 方法三:使用Makefile或CMake
*/C++与C的区别
cpp
#include <iostream>
#include <cstdio> // C风格输入输出头文件
using namespace std;
int main() {
// ============ 输出方式对比 ============
// C风格输出
printf("C风格输出: Hello, World!\n");
// C++风格输出
cout << "C++风格输出: Hello, World!" << endl;
// ============ 变量声明对比 ============
// C语言:变量必须声明在代码块开头
// C++:变量可以在任何位置声明
// C++风格:在使用处声明
for (int i = 0; i < 3; i++) {
cout << "i = " << i << endl;
}
// ============ 布尔类型对比 ============
// C++有内置bool类型
bool isTrue = true; // true是C++关键字
bool isFalse = false; // false是C++关键字
cout << "isTrue = " << isTrue << endl; // 输出1
cout << "isFalse = " << isFalse << endl; // 输出0
// 使用boolalpha输出true/false字面值
cout << boolalpha;
cout << "isTrue = " << isTrue << endl; // 输出true
cout << "isFalse = " << isFalse << endl; // 输出false
// ============ 引用 vs 指针 ============
int num = 10;
// 指针(C和C++都支持)
int* ptr = #
cout << "指针访问: " << *ptr << endl;
// 引用(C++特有)
int& ref = num; // ref是num的引用(别名)
cout << "引用访问: " << ref << endl;
// 通过引用修改原变量
ref = 20;
cout << "修改后num = " << num << endl;
return 0;
}代码风格建议
cpp
#include <iostream>
using namespace std;
/*
* C++代码风格建议:
*
* 1. 命名规范
* - 类名:大驼峰(MyClass)
* - 函数名:小驼峰或下划线(myFunction 或 my_function)
* - 变量名:小驼峰或下划线(myVariable 或 my_variable)
* - 常量名:全大写下划线(MAX_SIZE)
* - 宏定义:全大写下划线(#define PI 3.14159)
*
* 2. 缩进和空格
* - 使用4个空格或1个Tab缩进
* - 运算符两边加空格
* - 逗号后面加空格
*
* 3. 注释
* - 单行注释用 //
* - 多行注释用 /* */
* - 文档注释用 /** */
/*
*
* 4. 大括号风格
* - K&R风格:左大括号不换行
* - Allman风格:左大括号换行
*/
// 示例:良好的代码风格
// 常量定义
const int MAX_STUDENTS = 100;
const double PI = 3.14159;
// 类定义(大驼峰命名)
class StudentInfo {
public:
// 成员函数(小驼峰命名)
void setStudentName(string name) {
studentName = name; // 左大括号不换行
}
string getStudentName() {
return studentName;
}
private:
string studentName; // 成员变量(下划线后缀或小驼峰)
};
int main() {
// 变量声明时初始化
int studentCount = 0;
double averageScore = 0.0;
// 使用有意义的变量名
bool isPassed = true;
// 运算符两边加空格
int sum = 10 + 20;
// 适当的空行分隔逻辑块
cout << "学生人数: " << studentCount << endl;
cout << "平均分: " << averageScore << endl;
return 0;
}本章小结
本章学习了:
- C++历史:从1979年发展至今,经历了多次标准更新
- 开发环境:Windows/Linux/macOS平台的环境搭建
- 第一个程序:Hello World程序的结构和编译运行
- C++与C的区别:bool类型、引用、变量声明位置等
- 代码风格:命名规范、缩进、注释等最佳实践
下一章,我们将学习基础语法,了解C++的变量、常量和输入输出。
