c++ 学习笔记

C++学习笔记

1、使用C++11的标准来编译C++要添加-std=c++11参数(gcc版本要大于4.8)

g++ -std=c++11 test.cpp -o test

2、输入EOF

windows    : CTRL+Z
linux/unix : CTRL+d

3、引用初始化

普通引用只能用一个左值(对象)进行初始化,因为只能引用一个对象。

int &a = b;                                 # a是b的引用,通过a可以修改b的值
vector<int>::iterator &it = ivec.begin();   # 错误,ivec.begin()返回的是一个值,是一个临时对象,在return语句执行完后,就会被销毁,这样就返回了一个悬空的引用。

# 添加中间变量
vector<int>::iterator a = ivec.begin();     # 赋值给中间变量,中间变量是一个左值
vector<int>::iterator &it = a;              # 左值初始引用。

# 返回引用的函数,可以初始化引用
int &getRef();                              # 返回的是一个引用,所以getRef()是一个左值。
int &c = getRef();                          # 左值可以初始化化引用

const 引用可以用一个右值进行初始化

const int &a = 5;                                # a不能改变
const vector<int>::iterator &it = ivec.begin();  # it不能改变,++it都是非法的,没有意义
改变临时变量的生命周期

vector<int>::iterator &&it = ivec.begin();   # 添加两个“&”符号,产生一个返工值的副本?

4、man命令来查看类的成员

man std::string    // 可以查看string的成员变量和成员函数的声明。

5、使用标准库的类型和对象

使用标准库类型和对象要分两步
1、include标准库的头文件
2、using namespace std; 或者每个类型前都加上std::,表示这个类型是标准库中的。

只include头文件,编译器是找不到类型或对象的,为什么还不知道。

std::string  //使用标准库中的类
std::cout    //使用标准库中的对象
原文地址:https://www.cnblogs.com/yuandonghua/p/15636117.html