构建之法4、17章观后感

第四章:

  question1:对于4.3.4中提到的折构函数和虚函数这两个概念,我完全不知道它们是什么。不知道它们的定义和存在的作用。

         通过查询,我知道了这两个函数的定义和作用。析构函数名也应与类名相同,只是在函数名前面加一个位取反符~,例如~stud( ),以区别于 构造函数。它不能带任何参数,也没有返回值(包括void类型)。只能有一个析构函数,不能重载。如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数(即使自定义了析构函数,编译器也总是会为我们合成一个析构函数,并且如果自定义了析构函数,编译器在执行时会先调用自定义的析构函数再调用合成的析构函数),它也不进行任何操作。所以许多简单的类中没有用显示的析构函数。C++折构函数的作用是用来完成对象被删除前的一些清理工作,也就是专门的扫尾工作。折构函数与构造函数的作用正好相反,如果构造函数打开了一个文件,最后不需要使用时文件就要被关闭。折构函数允许类自动完成类似清理工作,不必调用其他成员函数。折构函数也是特殊的类成员函数。析构函数如果我们不写的话,C++ 会帮我们自动的合成一个,就是说:C++ 会自动的帮我们写一个析构函数。很多时候,自动生成的析构函数可以很好的工作,但是一些重要的事迹,就必须我们自己去写析构函数。 析构函数和构造函数是一对。构造函数用于创建对象,而析构函数是用来撤销对象。简单的说:一个对象出生的时候,使用构造函数,死掉的时候,使用析构函数。
         简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。当把基类的某个成员函数声明为虚函数后,允许在其派生类中对该函数重新定义,赋予它新的功能,并且可以通过指向基类的指针指向同一类族中不同类的对象,从而调用其中的同名函数。由虚函数实现的动态多态性就是:同一类族中不同类的对象,对同一函数调用作出不同的响应。

第十七章:

   question1:17.6中的原文有这样一段:关于代码量,作者在上课的时候给同学讲了这个故事:“......代码量等于树叶量,当作如是观。”在这个地方,按照我的认识,任何事物都是熟能生巧,代码写得越多,遇到并解决的问题便会更多,那么为什么这里作者会说代码量等于树叶量呢?

          或许作为程序员我们的思维本就不应该和常人一样。很多时候思考问题要从专业的角度。对于普通人来说,很多事情确实是熟能生巧,做得越多便是越精通。但是写程序不一样,你的核心算法和代码开发策略不变,你写再多的代码,都是千篇一律,只是进行了大量的复制粘贴般的操作。自己并没有得到提升,代码水平也和以前一样。说到底,程序开发,并不是一个做得越多越好的事情,更多的是需要思考。代码量如树叶,我们需要思维的进步。

 

 

posted @ 2018-04-01 15:16  Rainoob  阅读(124)  评论(1编辑  收藏  举报