面向对象编程是C++的重中之重。所用的时间也是极其长。
对我来讲最为困难的是理清楚 “基类”,“派生类”之间的逻辑关系。其中的变化无穷无尽。基类可以是其他类的派生类,派生类也可以是其他类的基类。难以适应的没有成员的抽象基类。
各种虚函数,穿插着各种指针,尤其嵌套指针,一不小心,就全都给整懵了。
封装,继承,多态。没体会到好处,却体会到复杂,这还没涉及到算法,仅仅是语言本身就足以产生脱发功效。
十五章,慢慢的涉及到一些稍微复杂的功能实现,比如最后的查询程序。每一道练习题都有坑,要费力爬。比如用内置指针实现的多重嵌套,如何不泄露内存,我是上网查,参考书籍,还要足足两天时间解决,反过来看,其实原理很简单,就是递归析构。
15.42 第一小题,其实最为简单,getline函数的分隔符运用。当然,同时解决的还有标点符号去除,不去除会导致有标点的单词查不出来。
而第二小题,实现核心功能很简单,只需要加一个vector,难的是用户交互接口,如何将屏幕上的 in & bird 转化为程序中的Query(“in”) & Query(“bird”),而且参数不止两个,要做到多少参数都要可实现。而且一旦查完,push 进容器,还要做到1 & her转化为(in & bird)& her,还是要费点脑细胞的。
目前跟这本书磕了半年多,马上就要看到曙光了,只是后边是越来越费脑细胞,同志们努力吧。