【MFC教程】C++基础:01 小黑框跑起来

------写给纯小白的 C++「语言地基」速成课

(看完就能自己敲出一个可运行的 .exe)


0. 开场 30 秒

目标:用 Windows 自带的「小黑框」(命令行窗口)跑起一段真正属于你的 C++ 程序。

门槛:零。只要会打字、会点鼠标。


1. 把"原料"准备好------基本类型与运算

计算机只认识 0 和 1,但 C++ 贴心地给了几种"盒子"来装不同大小的数字和字符。

最常用的四个盒子:

盒子名 能装什么 占多大 举 例
int 整数 4 字节 int age = 18;
double 带小数点的数 8 字节 double pi = 3.1415;
char 单个字符 1 字节 char grade = 'A';
bool 真 / 假 1 字节 bool ok = true;

运算符号就像数学里的加减乘除,但多了一些电脑特有写法:

  • 四则运算:+ - * /
  • 整除取余:%(7 % 3 结果是 1)
  • 逻辑运算:&&(与)、||(或)、!(非)

一行代码就能让电脑帮你算:

cpp 复制代码
int n = 10 + 5 * 2;   // 先乘除后加减,n 得到 20

2. 让程序"拐弯"------流程控制

电脑很笨,只能一行一行往下读。我们用流程控制语句告诉它:"这里要绕路!"

if / else:做选择

cpp 复制代码
int x = 7;
if (x % 2 == 0)
    cout << "偶数";
else
    cout << "奇数";

for:按次数循环

cpp 复制代码
for (int i = 0; i < 10; ++i)   // 从 0 数到 9
    cout << i << ' ';

while:条件满足就继续

cpp 复制代码
int sum = 0, i = 1;
while (i <= 100) {   // 算 1+2+...+100
    sum += i;
    ++i;
}

switch:多选一

cpp 复制代码
char op = '+';
switch (op) {
    case '+': cout << "加法"; break;
    case '-': cout << "减法"; break;
    default:  cout << "未知";
}

3. 把重复代码打包------函数

函数 = 给一段代码起名字,以后喊名字就能用。

写法 3 步曲

  1. 声明(告诉编译器"我有这么个函数")
  2. 定义(真正写函数体)
  3. 调用(在 main 里用)
cpp 复制代码
// 1. 声明(通常在头文件或 main 之前)
int add(int a, int b);

// 2. 定义
int add(int a, int b) {
    return a + b;
}

// 3. 调用
int main() {
    cout << add(3, 4);   // 屏幕打印 7
}

4. 把工具箱打开------头文件 & 命名空间

头文件:拿来主义

别人写好的代码,用 #include 直接搬进来。

  • #include <iostream> 提供输入输出
  • #include <cmath> 提供数学函数 sqrt, pow ...

命名空间:防止重名

C++ 标准库里的名字都放在 std 这个抽屉里。

  • 偷懒写法:using namespace std;(整个抽屉端走)
  • 安全写法:std::cout << "Hello";(精确拿取)

5. 把源代码变成 .exe------编译模型(一张图秒懂)

复制代码
源码(.cpp) ──► 编译器 ──► 目标文件(.obj) ──► 链接器 ──► 可执行文件(.exe)
  • 编译:检查语法,翻译成机器码,生成 .obj
  • 链接:把多个 .obj 和库文件粘在一起,生成最终 .exe

在 Visual Studio 里只需 3 步

  1. 新建 → 控制台应用 → 起名叫 Hello
  2. 把下面 7 行代码粘进 Hello.cpp
  3. Ctrl + F5(开始执行不调试)→ 小黑框蹦出来!
cpp 复制代码
#include <iostream>
using namespace std;

int main() {
    cout << "Hello, 小黑框!" << endl;
    return 0;
}

常见报错及对策

报错信息 含义 怎么办
LNK2019: unresolved external symbol 声明了函数却没定义 把函数体补全
C2065: 'cout' : undeclared identifier 没包含头文件或没写 std:: #include <iostream>using namespace std;

6. 5 分钟速通清单(背下来就能出门)

  • 4 个基本盒子:int double char bool
  • 4 条流程控制:if/else for while switch
  • 3 步函数:声明 → 定义 → 调用
  • 2 个头文件:#include <iostream> #include <cmath>
  • 1 句命名空间:using namespace std;
  • 1 个快捷键:Ctrl + F5 跑出小黑框

7. 下一步

小黑框跑起来了?恭喜!你已经完成「语言地基」。

接下来回到主线,去学面向对象------类、继承、多态,它们才是 MFC 世界的真正入口。

相关推荐
其实防守也摸鱼4 分钟前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
木喃的井盖7 分钟前
无锁队列细节
c++·工程
王老师青少年编程25 分钟前
csp信奥赛C++高频考点专项训练之字符串 --【字符串基础】:输出亲朋字符串
c++·字符串·csp·高频考点·信奥赛·专项训练·输出亲朋字符串
WBluuue1 小时前
数据结构与算法:莫队(一):普通莫队与带修莫队
c++·算法
小郑加油1 小时前
python学习Day12:pandas安装与实际运用
开发语言·python·学习
AC赳赳老秦1 小时前
投标合规提效:用 OpenClaw 实现标书 / 合同自动审核、关键词校验、格式优化,降低废标风险
开发语言·前端·python·eclipse·emacs·deepseek·openclaw
KuaCpp2 小时前
C++面向对象(速过复习版)
开发语言·c++
wbs_scy2 小时前
Linux线程同步与互斥(三):线程同步深度解析之POSIX 信号量与环形队列生产者消费者模型,从原理到源码彻底吃透
java·开发语言
2zcode2 小时前
基于MATLAB元胞自动机(CA)的AZ80A镁合金动态再结晶(DRX)过程模拟
开发语言·matlab·动态再结晶
iCxhust2 小时前
微机原理实践教程(C语言篇)---A001闪烁灯
c语言·开发语言·汇编·单片机·嵌入式硬件·51单片机·微机原理