第十五章:面向对象编程
1:派生类不能访问基类的私有变量,设计这种规则原则是:基类为公有的,私有的,则表示不希望类外看到私有的;而有了继承,则需要考虑一些变量对派生类开放,故而在私有的局部成员中分出一部分为保护的;故而保护的是相对派生类的公有,而对类外相当于私有。由此设计基类时,先考虑哪些为公有,私有;再在私有中考虑哪些为派生可访问哪些不能。
2:基类指针不可以转为派生类指针,而派生类可以转为基类。
3:如果希望覆盖虚函数机制,则必须显示用作用域操作符。
4:不同级别的继承,会导致基类成员成为派生类成员的什么类型成员。上级的私有是不能被访问的。如果上级的公有被继承为私有了,则表示下级就不能访问了。
5:友元不被继承
6:静态成员,在继承层次中只有一个。
7:http://blog.csdn.net/fg100emil/article/details/1417737对虚函数有个很好的认识。
8:istream的成员函数: istream& getline (char* s, streamsize n, char delim );
string头文件中,定义的是一个全局的函数:istream& getline ( istream &is , string &str , char delim )函数,注意返回值是流,而非bool类型,故而用于判断是判断该流是否有效,如果遇到getline函数读到了结尾,后是该结束了,但是对于cin而言在下次读时依然是有效的,因为如果输入中没有输入结束字符或出错之类的;而对于ifstream读入文件时,由于文件最后都会有个结束符,故而可以顺利结束。
9:面向对象编程,首先根据具体功能,对功能细分类别;接着对功能具有共同特征进行抽象,更多是方法抽象,当然也有必要的成员变量抽象;最后不断抽象直到没有共性了。对于需要一个类来管理这些抽象后的类,需要利用多态性,根据不同类调用不同的功能特性。句柄类非常重要。