CPPtest 是一个 C++ 学习练手项目的合集仓库。这里存放了我在学习 C++ 过程中写下的 25+ 个独立项目,覆盖了从基础语法到面向对象编程的核心知识点。
每个项目都是一个独立的控制台应用程序,有各自的
main()和vcxproj构建文件,互不依赖。
| 项目 | 描述 |
|---|---|
| Volume | 长方体体积计算 — 类的基本定义、构造函数、成员函数 |
| BMI | BMI 指数计算 — 基础输入输出与数学运算 |
| Counter | 计数器类 — 静态成员、多文件结构 |
| 20260317 | 函数比较四个数大小 — 函数定义与参数传递 |
| overloading | 函数重载 — 计算不同图形的面积 |
| 项目 | 描述 |
|---|---|
| Time | 时间类 — 类设计、指针访问成员 |
| Class | 多文件结构 — .h / .cpp 分离、类外定义函数 |
| Avatar | 角色属性 — 默认参数减少代码量,避免定义多个重载版本 |
| BankAccount | 银行账户系统 — 封装、数据隐藏、交易记录追踪 |
| DiscountProduct | 打折商品计算 — 组合与价格策略 |
| 项目 | 描述 |
|---|---|
| Inheritance | 初学类继承 — 基类与派生类的基本用法 |
| Animal | 动物继承体系 — 多层继承结构 |
| Shape | 形状层次结构 — 继承体系设计与多态 |
| Postgraduate | 研究生类 — 继承与派生类实际应用 |
| 20260428multiple_inheritance_test | 多重继承 — 同时继承多个基类 |
| 项目 | 描述 |
|---|---|
| TestStatic | 静态成员深入 — 静态变量、静态函数 |
| student_graduate_static_binding | 静态绑定演示 — 编译期函数调用解析 |
| Pay | 支付系统 — 多态应用 |
| PayMethod | 支付方式 — 多态接口设计 |
| Role | 角色系统 — 多态在实际场景中的使用 |
| GameObject | 游戏对象系统 — 面向对象游戏设计 |
| 项目 | 描述 |
|---|---|
| VRCharacter | VR 角色 — 角色属性与行为封装 |
| VRHeadset | VR 头显 — 设备类建模 |
| VRObject | VR 物体 — 3D 物体距离计算 |
| VRExperience | VR 体验 — 体验流程建模 |
| VRWeapon | VR 武器 — 武器系统设计 |
| 项目 | 描述 |
|---|---|
| data | 浮点数组文件读写 — ofstream / ifstream 实现数据持久化 |
| 20260528VRObjectIO | VR 场景二进制 I/O — 结构体序列化与反序列化 |
封装、数据隐藏、交易记录追踪 —— 一个完整的面向对象案例。
class BankAccount {
private:
string accountHolderName;
string accountNumber;
double balance;
string lastTransactionType;
public:
void deposit(double amount);
bool withdraw(double amount);
void displayBalance();
};用 VR 主题串联多个知识点:类设计、继承、多态、文件 I/O。
| 子项目 | 练习重点 |
|---|---|
| VRCharacter | 类封装与属性管理 |
| VRObject | 3D 坐标计算与距离公式 |
| 20260528VRObjectIO | 结构体二进制序列化 |
将 VRObject 结构体以二进制形式写入场景文件,再读取还原:
struct VRObject {
int id;
float x, y, z;
char name[50];
};
ofstream fout("vr_scene.dat", ios::binary);
fout.write((char*)objects, sizeof(objects));
fout.close();- IDE: Visual Studio 2022
- 工具集:
v143(VS 2022) - 语言标准: C++20 (
/std:c++20) - 构建系统: MSBuild
在 开发者命令提示符 或 PowerShell 中:
# 编译单个项目(Debug / Win32)
msbuild Volume\Volume.vcxproj
# 指定配置与平台
msbuild Avatar\Avatar.vcxproj /p:Configuration=Release /p:Platform=x64
# 运行
.\x64\Release\Avatar.exe⚠ 本仓库没有
.sln解决方案文件,请直接打开各项目目录下的*.vcxproj或在命令行用 MSBuild 编译。
基础语法 ─→ 类与对象 ─→ 继承 ─→ 多态/静态绑定 ─→ 文件 I/O
├ Volume ├ Time ├ Inheritance ├ TestStatic ├ data
├ BMI ├ Class ├ Animal ├ Pay └ 20260528VRObjectIO
├ Counter ├ Avatar ├ Shape ├ PayMethod
├ overloading├ BankAccount├ Postgraduate ├ Role
└ 20260317 └ DiscountProduct└ 多重继承 └ GameObject
└ VR 系列
本项目基于 Apache-2.0 许可证开源。