左值和右值

左右值的相关概念来源于C语言,C++任何一个对象要么是左值,要么就是右值

左值拥有地址属性的对象。它既能放在=左边的就是左值,也能放在=右边:

int i = 10;	// i为左值
int i2 = i;	// i为左值

右值不是左值的对象。或者说无法操作地址的对象。一般来说,判断一个对象是不是右值,只需看它是不是左值,有没有地址属性,不是的话就是右值。并且 右值不可能在=左边

int i = 10;
int i2 = i + 1;	// i+1 是临时对象(有地址,但无法使用),是右值
阅读全文 »

auto关键字

auto告诉编译器,在编译期自动推断变量的类型,简单来说就是简化了一些写法。使用它推断类型确实简单方便,但有个基本要求:在使用auto时必须清楚的知道编译器会给auto推断出什么类型

阅读全文 »

标准IO简介

IO简单来说就是数据在输入设备,内存,硬盘,输出设备之间移动的过程。

对于C语言,它实现了许多不相关的函数来实现这些过程。例如printf就是让数据从内存到显示屏(输出设备);scanf就是让数据从键盘(输入设备)到内存。此外还有从内存到磁盘的文件操作等。这些函数彼此不相关。

而C++有了继承功能,可以让子类与父类间有关联性,极大的提高各种IO功能之间的耦合性。

于是C++用继承功能重写了IO,这就是IO库。IO库引入了“流”的概念,数据从一个地方流到另一个地方,原本地方的数据就无了,叫做流很贴切。

更多内容详见Part6:IO库,这里简单介绍一下怎么进行输入输出。

阅读全文 »
0%