C++开发环境和基础语法
2021-06-08 18:02
标签:语法 参考 标识 错误 引用形参 参数 using 注意 img ??1.在虚拟机中使用g++,可使用如下命令: ??g++是c++的一种编译器,需要安装,g++的用法和gcc一致,需要更换下载源,不然速度很慢。 ??上世纪80年代初,由本贾尼在贝尔实验室开始从事将C改良为带类的C(C with classes)的工作,83年被正式命名为C++,在此基础上发展出了GNU C++、微软 C++、ANSI C++和制定了ISO C++98、ISO C++03、ISO C++11、ISO C++14等标准。可以看出C是C++的基础,C++是C的扩展,扩展了以下内容: ??C++完全兼容C,但C++属于强类型语言,类型检查严格,所以编程时需要注意,不像C语言一样,类型传递不相符只是报警告而已。 ??C++的源代码保存在后缀为.cpp的文件中,头文件的后缀.hpp,也有.cc .C .cxx .c++具体看使用什么样的编译器或者集成开发环境。 ??C++包含系统头文件不再以.h作为结尾 ??C语言的标准头文件仍然可以使用 ??如果一个数据不属于任何命名空间,C++认为该数据处于匿名命名空间,可以使用 ::内容 语法来访问匿名命名空间中的内容,也可以省略::。也可以直接定义匿名命名空间: ??C++的标准输入输出定义在std的命名空间中,使用C++的输入输出流(包括其他工具)都需要使用命令空间std。 ??上面代码表示需要使用命名空间std,当使用了这行代码时就不需要使用::来进行访问std空间中的内容了,当然前提是用户所定义标识符不会和系统的起冲突 实验程序 输出结果 ??引用说白了就是起别名的意思,一般只在定义函数的参数时使用,表示将变量本身传递过去,而不是作为一个形式参数,和指针不同,指针传递的是地址,而引用就是其本身只是被起了别名而已,所以引用作为函数参数可以实现数据的双向传递。 实验程序 输出结果: ??1.命名空间的作用是对代码进行划分,防止命名冲突,应该避免使用匿名命名空间; C++开发环境和基础语法 标签:语法 参考 标识 错误 引用形参 参数 using 注意 img 原文地址:https://www.cnblogs.com/ding-ding-light/p/14521227.htmlC++的编译环境
先测试有没有安装g++
g++ -v
安装
sudo apt-get update
sudo apt-get install g++
g++ -v //用来检查是否安装成功
??2.使用VS Code加WSL,可参考如下博客:https://blog.csdn.net/weixin_37714383/article/details/85239886
C++简介
1.面向对象(以类的方式来组织代码)
2.运算符的重载(一种函数的特殊形式)
3.异常(一种新的错误处理方法)
4.泛型编程(类型通用的编程)
基础语法
1.源代码存储
2.C++的头文件
#include
#include
3.命名空间
??当一个项目有很多个人同时开发的时候,可能会发生使用了同一个标识符的情况,这样便会导致编译错误,如上图所示使用可命名空间的话,只要空间名不同即使标识符名字一样也不会发生冲突,使用:空间名::成员名 来访问不同空间的内容,::叫做域操作符。4.匿名命名空间
namespace{
内容;
}
4.C++的输入和输出
using namespace std;
using namespace std;
标准输入 ------ cin>>
cin>>代表空间的内容(变量/地址)
可以连续输入:cin>>空间1>>空间2>>空间3>>......
标准输出 ------ cout
#include
5.引用(references)
类型名& 引用名 = ....;//引用必须初始化
//以上代码就相当于给等号后边的内容起一个别名
引用既可以指向变量,也可以指向常量
int num = 10;
int& r = num;//变量的引用
const int& cr = 100;//常量的引用
int *p = xxx;
int *&rp = p;//指针的引用
int arr[5];
int (*r_arr)[5] = arr;//数组的引用
//数组引用作为函数攒书可以保留数组的特性,也就是可以用sizeof求出它的大小
//但是丧失了数组传递的灵活性,几乎不使用
int x = a(...);// 声明为int& a(...); 注意返回的类型也需要是引用的类型
??使用引用的方法给一个指针类型分配空间#include
6.内存分配
new/delete --------- 分配和释放单个内存
new[]/delete[] ----- 分配和释放多个连续内存
申请一个类型大小的内存
类型名 *指针变量名 = new 类型;
类型名 *指针变量名 = new 类型(值);//分配初始化
释放一个类型大小的内存
delete 指针变量名;
申请多个同类型大小的内存
类型名 *指针变量名 = new 类型[n];//分配n个类型大小的内存
释放多个同类型大小的内存
delete[] 指针变量;
总结
??2.如果函数内部不对引用形参进行修改,应该给引用参数加const;
??3.不能局部变量和非引用形参的引用,可以返回静态、全局、堆、引用参数的引用;
??4.内存分配在C++使用malloc/free,而使用new/delete。