小知识:
cin 类型和 cout 类型--->本质是一个对象--->输入、输出流的对象--->分别做
输入、输出
~cin 类型--->是 istream 类的对象(inputstream)
~cout 类型--->是 ostream 类的对象(outstream)
流运算符
<< >> 流重载
= () -> [ ] 这些运算符必须采用类的成员函数形式
重载
. .* ? :(三目运算符) ::(作用域分辨符) 这些运算
符不能被重载
class Student
{
public:
Student(string name = "", int age = 18) :name(name), age(age)
{}
protected:
string name;
int age;
};
int main(){
string str("i love you");
cin>>str;
cout<<str; //做了运算符重载
//创建一个对象,写一个类--->想实现同样的效果,也需要做运算符重载
Student mm("小明",18);
cin>>mm;
cout<<mm; //报错:没有与这些操作数匹配的<<运算符
}
小知识:
string 本身也是一个类,为什么类的对象可以直接 cout 输出?