“C++入门到精通 | 人工智能与物联网开发基础系列②”笔记
1.C++简介
2.HelloWorld与命名空间
2.1 HelloWorld
1.两种不同版本的HelloWorld
1)、C版本的HelloWorld
#include "stdio.h"
int main(int argc, char *argv[])
{
printf("C - HelloWorld!\n");
return 0;
}
2)、C++版本的HelloWorld
#include "iostream"
using namespace::std;
int main(int argc, char *argv[])
{
cout<< "C++ - HelloWorld!" <<endl;
return 0;
}
2.如何在Linux环境中编写与编译HelloWorld
# Linux终端
onme@ubuntu:~$ ls #显示当前目录下所有文件(不包括隐藏文件)
CASIAdata Downloads myLearnDoc ROS Videos
Desktop examples.desktop Pictures snap Win_Linux
Documents Music Public Templates
onme@ubuntu:~$ mkdir test_code #1新建一个test_code文件夹用于保存测试代码
onme@ubuntu:~$ ls #新建好test_code文件夹之后
CASIAdata Downloads myLearnDoc ROS test_code
Desktop examples.desktop Pictures snap Videos
Documents Music Public Templates Win_Linux
onme@ubuntu:~$ cd test_code/ #2进入到文件夹中(Tab具有自动补齐功能,要好好利用)
onme@ubuntu:~/test_code$ ls #新建的test_code当前文件夹为空
onme@ubuntu:~/test_code$ touch hello.c hello.cpp #3新建一个hello.c C语言文件和hello.cpp C++语言文件
onme@ubuntu:~/test_code$ ls #查看新建两个文件之后的文件夹便多了以下两个文件
hello.c hello.cpp
onme@ubuntu:~/test_code$ vi hello.c #4使用vim编辑hello.c
# vim编辑界面 - 初期使用vim编辑可能不习惯 - 具体可看看vim如何编辑
#1 按 a 进入插入模式,进入编辑状态;然后正常的编写即可
#include "stdio.h"
int main(int argc, char *argv[])
{
printf("C - HelloWorld!\n");
return 0;
}
#2 编写完之后,按 ESC 进入普通模式(即退出编辑)
#3 在普通模式下,输入 :w 保存hello.c文件
#-------------------------------------------------------------------------------
#4 利用vim多窗口编辑功能,在普通模式下输入 :sp hello.cpp 以打开一个视窗编辑hello.cpp文件
#5 同理在hello.cpp中按 a 进入插入模式开始编写程序
(视窗切换为普通模式下按 ctrl+w+j(移至下面视窗) 或 ctrl+w+k(移至上面视窗) 或 ctrl+w+w )
#include "iostream"
using namespace::std;
int main(int argc, char *argv[])
{
cout<< "C++ - HelloWorld!" <<endl;
return 0;
}
#6 编写完之后,按 ESC 进入普通模式(即退出编辑)
#7 在普通模式下输入 :wq 保存并退出vim
#8 退出vim之后便返回至Linux终端中
# Linux终端
#1 编写好hello.c以及hello.cpp之后
#2 使用gcc编译hello.c 生成可执行文件ctest
onme@ubuntu:~/test_code$ gcc -o ctest hello.c
#3 执行ctest文件,输出 C - HelloWorld!
onme@ubuntu:~/test_code$ ./ctest
C - HelloWorld!
#-----------------------------------------------
#4 使用g++编译hello.cpp生成可执行文件cpptest
onme@ubuntu:~/test_code$ g++ -o cpptest hello.cpp
#5 执行cpptest文件,输出 C++ - HelloWorld!
onme@ubuntu:~/test_code$ ./cpptest
C++ - HelloWorld!
2.2 输入输出流
相当于C语言的scarf和printf
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190929164439428.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0Jpbkhlb24=,size_16,color_FFFFFF,t_70#pic_center)
2.3 命名空间namespace(有点相像C语言中的结构体操作)
为了解决命名重复的问题。如在分组1里存在命名:nLibray,而在分组2里也存在nLibray,则在使用时需要对不同组的命名进行操作。其中,std:标准命名空间,其中包含了cout/cin/…
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191011210601502.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0Jpbkhlb24=,size_16,color_FFFFFF,t_70#pic_center)
如下面的例子:
#include <iostream>
#include <stdlib.h>
using namespace::std
namespace group1 {
int m = 200;
int n = 10;
}
namespace group2 {
int x;
int n = 50;
}
int main(int argc, char *argv[])
{
using group2::x;
cout << x << endl;
x = -100;
group1::n *= 2;
cout << group1::n << endl;
cout << group1::m << endl;
group2::n *= 3;
cout << group::n << endl;
cout << x << endl;
system("PAUSE");
return 0;
}
3.内联函数(inline)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191011212734157.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0Jpbkhlb24=,size_16,color_FFFFFF,t_70#pic_center)
3.1 函数
1.两种不同版本的HelloWorld