重拾C++


基本格式

1
2
3
4
5
6
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
return 0;
}

头文件

标准c头文件 math.h,在 c++ 中改名为 cmath,使用时需要 #include

1
### include <iostream>

命名空间

命名空间是防止重复声明所用,如下方式定义命名空间,通过 wdnmd::heng 使用

1
2
3
4
5
namespace wdnmd
{
bool flag = false;
int heng = 114514;
}

using 命名空间中的变量,使用此变量时可以省去 wdnmd::

1
using wdnmd::flag;

using 命名空间,使用此命名空间内所有变量时省去 wdnmd::

1
using namespace wdnmd;

cin、 cout、endl 均属于位于命名空间 std 内的函数,使用时需引入 std,否则需要 std::cout >> "xxx" >> std::endl;
头文件 iostream 文件中定义的所有变量、函数等都位于 std 命名空间中,通过如下方式引入

1
using namespace std;

输入输出

输出:

1
cout << " " << " " << endl;

输入:

1
2
int a;
cin >> a;

连续输入:

1
2
int a, b;
cin >> a >> b;

例一:打印输入的数字和浮点数

1
2
3
4
5
6
int a;
float b;
cout << "请先后输入数字和浮点数:" << endl;
cin >> a >> b;
cout << "您输入的数字是:" << a << endl;
cout << "您输入的浮点数是:" << b << endl;

输入语句是有返回值的,对于 cin >> num,有输入时返回 true,没有时返回 false(停止输入语句为eof

例二:连续输入一串数字,停止输入后输出总和

1
2
3
4
5
6
7
8
int sum, num;
cout << "请输入一系列数字求和:" << endl;
while (cin >> num)
{
sum += num;
cout << "请继续输入(输入eof停止输入):" << endl;
}
cout << "总和为:" << sum << endl;

引用

通过 & 声明引用
如下例子,此时输出 15 15 20,类似js引用类型浅拷贝

1
2
3
4
5
6
int num1 = 10;
int &num2 = num1;
int num3 = num1;
num2 = 15;
num3 = 20;
cout << num1 << " " << num2 << " " << num3 << endl;

类型强转

static_cast

static_cast 用于对数据类型强制转换
使用方式:static_cast<类型>(要转换的变量)

1
2
3
int a = 10, b = 3;
cout << a / b << endl;
cout << static_cast<double>(a) / static_cast<double>(b) << endl;