1. 输入运算符必须处理输入可能失败的情况,而输出运算符不需要。

至于为什么,个人看法,操作系统分层,从硬件到系统到应用程序,数据是一步步传输的,哪里产生的错误由哪里处理,输出时,程序可以保证数据的类型和格式一致(如果和预期不一致,那是你写错了),而之后的错误进入到了操作系统层,不应该由用户处理。至于输入,操作系统应该能保证输入没问题,到软件层,再进行错误检测。

  1. 面对对象程序设计(oop)三个基本概念:数据抽象、继承、动态绑定。

    • 数据抽象:将类的接口与实现分离
    • 继承:定义相似的类型,并对其相似关系建模
    • 动态绑定:一定程度上忽略相似类型的区别,用统一的方式使用对象。
  2. 前向声明类(仅声明的类)可以应用的场景:

    1. 指针和引用

    2. 作为函数参数或返回类型

    3. 用在模板参数中,如:class A; vector<A> vec;

    4. 作为静态成员变量的类型,(像那种不允许实例化的类,一般都会存一个自己)