08 - 可调用对象
可调用对象
如果一个对象可以使用调用运算符()
,()
里可以放参数,这个对象就是可调用对象。可调用对象主要有以下三类:
左右值的相关概念来源于C语言,C++任何一个对象要么是左值,要么就是右值。
左值:拥有地址属性的对象。它既能放在=
左边的就是左值,也能放在=
右边:
int i = 10; // i为左值
int i2 = i; // i为左值
右值:不是左值的对象。或者说无法操作地址的对象。一般来说,判断一个对象是不是右值,只需看它是不是左值,有没有地址属性,不是的话就是右值。并且 右值不可能在=
左边:
int i = 10;
int i2 = i + 1; // i+1 是临时对象(有地址,但无法使用),是右值
auto
告诉编译器,在编译期自动推断变量的类型,简单来说就是简化了一些写法。使用它推断类型确实简单方便,但有个基本要求:在使用auto
时必须清楚的知道编译器会给auto
推断出什么类型。
IO简单来说就是数据在输入设备,内存,硬盘,输出设备之间移动的过程。
对于C语言,它实现了许多不相关的函数来实现这些过程。例如printf就是让数据从内存到显示屏(输出设备);scanf就是让数据从键盘(输入设备)到内存。此外还有从内存到磁盘的文件操作等。这些函数彼此不相关。
而C++有了继承功能,可以让子类与父类间有关联性,极大的提高各种IO功能之间的耦合性。
于是C++用继承功能重写了IO,这就是IO库。IO库引入了“流”的概念,数据从一个地方流到另一个地方,原本地方的数据就无了,叫做流很贴切。
更多内容详见Part6:IO库
,这里简单介绍一下怎么进行输入输出。