技术部第一次培训(施工中…)

引入

C++是一种通用的高级编程语言,最初由Bjarne Stroustrup在1980年代早期作为C语言的扩展开发而来。C++语言结合了C语言的底层控制和高级语言的抽象特性,旨在提供更高级的编程工具和更大的灵活性。

C++是一种面向对象的编程语言,它支持封装、继承和多态等面向对象编程的核心概念。它还提供了诸多其他特性,如模板元编程、异常处理、运算符重载等,使得开发者能够以更高效和灵活的方式编写代码。

C++语言具有高效性和可移植性。与C语言一样,C++代码可以编译成机器码,因此具有高性能。此外,C++可以在许多平台上进行编译和运行,包括Windows、Linux、macOS等。

C++广泛应用于开发各种类型的软件,包括系统软件、应用程序、游戏、嵌入式系统等。由于其灵活性和高性能,C++常常用于对性能要求较高、对底层硬件操作较多的领域,如游戏开发、图形处理、网络编程等。

总结来说,C++是一种功能强大、灵活多样的编程语言,适用于多种开发场景,是许多程序员和软件开发者的首选语言之一。

个人见解

C++的学习曲线无疑是非常陡峭的,由于C++要兼容C,以及各种历史遗留问题,导致C++是非常复杂的。又由于C++的特性过于强大且复杂,有点既要又要的意思,让本就不简单的语言更雪上加霜。

部分同学可能在学习完C后再学C++会产生“C++也不过如此”的想法。巧了,刚开始的我也是这么认为的,不过在接触了Modern C++后才发现C++是真的学不完的,太复杂了。学校教的仅仅是开胃小菜而已。


第一个C++程序

以下是一个简单的C++程序,它的功能是在控制台输出Hello world!

#include <iostream>	//使用输入输出流,包含iostream头文件

int main() { //主函数,程序的入口,程序将由此开始执行
std::cout << "Hello world!" << std::endl; //使用std命名空间下的cout对象输出Hello world!
return 0; //返回0,表示程序正常运行完毕
}
#include <iostream>	//使用输入输出流,包含iostream头文件
using namespace std; //使用std标准库命名空间

int main() { //主函数,程序的入口,程序将由此开始执行
//由于使用std命名空间,所以不再需要std::
cout << "Hello world!" << endl; //使用cout对象输出Hello world!
return 0; //返回0,表示程序正常运行完毕
}

拆分解释

  • 注释,由前缀//标识。
  • 预处理器编译命令#include
  • 编译指令using namespace
  • 函数头:int main()
  • 函数体,用{}括起。
  • 使用C++的cout工具显示消息的语句。
  • 结束main()函数的return语句。

#include预处理宏命令

C++20起加入了模块机制,可以用import导入头文件,可以防止头文件被多次include导致redefinition。

import <iostream>

不过由于目前阶段功能仍不稳定,部分编译器未提供完整支持,MSVC不清楚,gcc/g++目前是不支持的。


在示例程序中,我们使用了#include <iostream>,C++委员会已经为我们规定好了标准库,其中包含了许多功能,我们所需要的输出流对象cout,就位于iostream头文件中,所以我们要包含此文件头。

#include其实仅仅是将代码原封不动的复制过来,并不会进行语法检查。

如下

96e6e138c87e7faf35a18378ed41b67a.png

C++委员会已经为我们写好了如何通过控制台输出,原理我们目前阶段不必深究,会用即可。

我们常说的程序员会Ctrl+C,Ctrl+V就可以了,大概就是如此罢!

初学阶段程序模板

示例代码

#include <iostream>
using namespace std;

int main() {
//函数体
return 0;
}

在C++中,每条完整的指令都称为语句,所有的语句都以分号;结束。注意:宏命令(带#的)除外

代码中的每个括号都要成对出现,<>[]{}()

注释

单行注释

单行注释以//打头,行尾结束。

//实现两数相加,返回两数之和
int add(int x, int y) {
return x+y;
}

多行注释

多行注释以/* */包裹,以/*开始,以*/结束。

/*
实现两数相加
返回两数之和
*/
int add(int x, int y) {
return x+y;
}

文档注释

文档注释

/**
* 实现两数相加
* @param x 参数1
* @param y 参数2
* @return 两数之和
*/
int add(int x, int y) {
return x+y;
}

切换呈现视图

| 实现两数相加
| Parameters
| x参数1
| y参数2
|
| Returns
| 两数之和
|
int add(int x, int y) {
return x+y;
}

基本数据类型

1byte = 8bits,一字节等于八位。

文字类

char(1byte)

表单个字符,字符需用一对单引号' '包裹。

char cha {'a'};
char chb {'3'};

unsigned char

std::string(dynamic)

表字符串,字符串需用一对双引号" "包裹

std::string str {"Hello world!"};

数字类

整数类

short(2bytes)

unsigned short

int(4bytes)

整型,只能存储整数

unsigned int

无符号整型,只能存储非负整数

int a {-10};
unsigned int b {6};

long(4bytes)

long类型在不同系统上大小是不同的,C++委员会只规定了其至少为4字节。

unsigned long

long long(8bytes)

unsigned long long

小数类

float(4bytes)

单精度小数

double(8bytes)

双精度小数

double a {3.14};
double b {0.618}

long double(16bytes)

变量,常量与初始化和赋值

变量

常量