《C++大学教程》学习笔记(二、三)
第二章太基础,唯一学到的就是#include也是预处理,之前一直疏忽了。
下面是第三章。
1.类接口与实现的分离
良好的软件工程要做到成员函数对于客户代码是隐藏的(即信息隐藏),所以在第三章中书中对于GradeBook类给了这样一个实例:
- GradeBook.h:使用函数原型定义类的借口
- GradeBook.cpp:在独立的源文件中实现成员函数
简而言之,就是把原来挤在一个源文件里的代码分离成下面这种样子:
很奇怪,当年上C++课的时候老师没怎么提这种做法,但做项目的时候参考别人的代码发现就是这么做的。
另外,尽管成员函数是在.cpp文件中实现的,但在main.cpp中仍然是#include “GradeBook.h”就可以了,因为在.cpp文件中每个成员函数都通过作用域分辨标识符(::)唯一的“捆绑”到了.h中的类定义上。
2.set与get函数
对于类中的数据成员,都应当有其对应的set与get函数。不仅如此,类中的其他成员函数也当使用get与set来访问数据成员(尽管它们能直接访问)。
使用set函数还有一个好处就是可以确认数据的有效性。
3.getline与cin
getline属于头文件string,cin属于iostream。
- cin是读取字符直到遇到第一个空白间隔符