C++编程概述
一、课上练习
编程练习
二、知识总结
✨ C++文件类型
C++文件通常被分为两类:.h/.hpp文件和.cpp文件。
- .h/.hpp文件:也被称为头文件,头文件提供了编译器所需的信息,使其能够在编译期间正确处理程序。
.h和.hpp文件没有本质区别,但是有些开发者喜欢以.hpp形式存储文件,以表示文件包含了C++的代码特性。 - .cpp文件:也被称为源文件,主要用于实现头文件中声明的内容,我们竞赛中编写的代码文件都会以
.cpp的形式存储。
✨ 添加头文件的方式
头文件包含了程序运行所需的函数声明和定义。在编写C++程序时,我们需要通过#include指令来引入需要的头文件。
添加头文件有两种写法:
- 尖括号
< >:用于引入系统自带或标准库的头文件,编译器会在系统目录中查找 - 双引号
" ":用于引入自定义或第三方头文件,编译器会先在当前目录中查找
竞赛中常用的万能头文件 包含了几乎所有标准库头文件,使用它可以省去逐个引入的麻烦。
添加头文件代码示例
#include <iostream> //系统自带头文件
#include <bits/stdc++.h> //万能头文件(竞赛常用)
#include "CTurtle.hpp" //第三方头文件(使用双引号)✨ 命名空间
什么是命名空间
命名空间是 C++ 提供的一种机制,用于组织代码并避免命名冲突。C++ 标准库中的所有内容(如 cout、endl、cin 等)都定义在 std 命名空间中,使用前需要声明。
两种引用方式
方式一:全局声明(using namespace)
在程序开头使用 using namespace 将整个命名空间引入,之后可以直接使用其中的所有内容,竞赛中推荐使用这种方式。
全局声明代码示例
using namespace std;
cout << "Hello" << endl; // 可以直接使用cout和endl方式二:局部引用(作用域运算符::)
每次使用时通过 命名空间名::成员名 的方式指定,适合大型项目中避免命名冲突。
局部引用代码示例
std::cout << "Hello" << std::endl; // 每次使用都要加std::前缀✨ C++代码结构
C++程序的基本结构包含以下主要部分:
- 预处理指令:目前学到的预处理指令就只有添加头文件
- 命名空间:声明程序中使用的命名空间
- 主函数main:程序的入口,所有代码从这里开始执行
C++代码结构代码示例
1#include <iostream> //头文件
2using namespace std; //命名空间
3
4//主程序入口
5int main() {
6 //程序代码
7 cout << "Hello, world!" << endl;
8
9 //主程序结束
10 return 0;
11}✨ 注释
C++ 程序中可以使用注释来解释代码,注释内容不会被编译器执行:
- 单行注释:以
//开头,从//到行末的内容都是注释 - 多行注释:用
/ /包围,可以跨越多行
注释代码示例
1// 这是一行单行注释
2
3/*
4 * 这是一段多行注释
5 * 可以写很多行
6 */✨ 输出方式
C++中有两种常用的输出方式:cout(C++风格) 和 printf(C风格)。
cout:使用插入运算符<<输出内容,可以通过endl或\n换行printf:使用格式化字符串输出,只能通过\n换行
输出方式代码示例
cout << "Hello, world!" << endl; //C++输出命令,使用endl换行
cout << "Hello, world!\n"; //C++输出命令,使用\n换行
printf("Hello, world!\n"); //C输出命令,使用\n换行✨ 顺序流程图
流程图是一种用于表示程序或过程步骤的图形化工具,通常由多种符号和箭头组成,用来描述步骤之间的流程关系。
在顺序流程图中:
- 使用圆角矩形/椭圆形表示开始或结束
- 使用矩形表示过程或步骤
- 使用平行四边形表示输入或输出
- 使用箭头表示流向
下面是一个简单的顺序程序流程图示例,展示了程序从开始到结束的基本执行顺序:
正在渲染流程图...
三、课后练习
编程练习
- Hello World 进阶版: L1043