C++核心语法与面向对象基石深度解析
C++程序可视为对象集合,对象间通过调用彼此方法通信协作。先明确四大核心概念:
对象:拥有状态与行为。例:狗有颜色、名字、品种(状态),会摇尾、吠叫、进食(行为)。对象是类的实例。
类:模板/蓝图,定义该类型对象支持的行为与状态。
方法:行为的代码实现。类可包含多个方法,逻辑、数据操作、动作执行均在方法中完成。
实例变量:每个对象拥有独有的实例变量集;对象状态由这些变量的取值决定。
C++程序结构剖析
经典Hello World示例:
#include <iostream>
using namespace std;
// main()是程序入口
int main() {
cout << "Hello World"; // 输出Hello World
return 0;
}
逐行拆解:
#include <iostream>:引入输入输出流头文件,提供cout等设施。using namespace std;:引入标准命名空间,简化标准库组件调用。命名空间是C++较新特性。// main() is where program execution begins.:单行注释,//至行尾均为注释。int main():主函数,程序执行起点。cout << "Hello World";:流插入操作符向标准输出写入字符串。return 0;:终止main(),向调用进程返回0(表示成功)。
编译与运行流程
- 打开编辑器粘贴代码。
- 保存为
hello.cpp。 - 打开终端进入文件目录。
- 执行
g++ hello.cpp编译;无错误则生成a.out(Windows下为a.exe)。 - 运行
./a.out(Windows直接a.exe)。 - 屏幕输出
Hello World。
$ g++ hello.cpp
$ ./a.out
Hello World
确保g++在PATH中,且在源文件目录下执行。亦可使用makefile管理构建,详见《Makefile教程》。
分号与代码块
分号(;)是语句终止符,每条逻辑语句必须以分号结尾。例如:
x = y;
y = y + 1;
add(x, y);
代码块:用大括号{ }包裹的逻辑相关语句序列。例:
{
cout << "Hello World";
return 0;
}
C++不以换行为语句结束标志,故语句可任意换行、缩进,不影响语义。上述三条语句写成一行或多行效果等价。
C++标识符命名规则
标识符用于命名变量、函数、类、模块等用户定义项。规则:
- 首字符:字母(A-Z/a-z)或下划线(_)
- 后续字符:字母、下划线、数字(0-9)
- 禁用标点:
@、$、%等 - 大小写敏感:
Manpower与manpower是两个不同标识符
合法示例:mohd、zara、abc、move_name、a_123、myname50、_temp、j、a23b9、retVal
C++关键字(保留字)
以下保留字不可用作常量、变量或任何标识符名称:
| asm | else | new | this |
| auto | enum | operator | throw |
| bool | explicit | private | true |
| break | export | protected | try |
| case | extern | public | typedef |
| catch | false | register | typeid |
| char | float | reinterpret_cast | typename |
| class | for | return | union |
| const | friend | short | unsigned |
| const_cast | goto | signed | using |
| continue | if | sizeof | virtual |
| default | inline | static | void |
| delete | int | static_cast | volatile |
| do | long | struct | wchar_t |
| double | mutable | switch | while |
| dynamic_cast | namespace | template |
三字符序列
部分字符有替代表示——三字符序列:三字符组合代表单一字符,固定以??开头。编译器在字符串字面量、字符字面量、注释、预处理指令中均会展开三字符序列。
常用对照表:
| 三字符序列 | 替换为 |
|---|---|
| ??= | # |
| ??/ | \ |
| ??' | ^ |
| ??( | [ |
| ??) | ] |
| ??! | | |
| ??< | { |
| ??> | } |
| ??- | ~ |
并非所有编译器支持三字符序列,且因极易混淆,不建议使用。
空白字符
仅含空白字符(空格、制表、换行、注释)的行称为空行,编译器完全忽略。空白字符分隔语句元素,助编译器识别int与age等标记边界。
示例1
int age;
int与age间至少需一个空白字符(通常为空格)。
示例2
fruit = apples + oranges; // Get the total fruit
fruit与=、=与apples间无需空白字符,但为可读性可自行添加。
C语言
- 掌握 C++ 输入输出:cin/cou 完整实战指南
- 掌握 C++ 运算符:六大类型全解析与实战示例
- C++ 注释最佳实践:编写可读、可维护代码的注释艺术
- C++ 流精通:cout、cin、cerr、clog 实战指南
- C 语言基础语法精通:Token、分号、注释与标识符规范
- C++编程语言:核心特性全景解析
- C++注释完全指南:单行、多行与嵌套最佳实践
- C++常量与字面量完全手册:类型、语法与最佳实践
- C++运算符大全:算术/关系/逻辑/位/赋值/杂项与优先级结合性
- C++数值类型实战指南:基本类型、数学函数与随机数生成
- C++引用详解:核心概念、与指针三大差异及函数参数/返回值应用
- Java 基础:掌握基本语法