《程序员面试宝典》之错误纰漏(持续更新。。。)

好长一段时间忙于找实习,找工作,和很多人一样买了一本《程序员面试宝典》第三版,每个人都似乎不亦乐乎的看着;但是,仔细看书的话还是有很多纰漏在里面,我也看到网上有人狠批这本书就是为了营销,我表示理解。记得有这么一句话,”你应该感谢那些敢于批评和让你陷入窘境的人,因为这样你才能真正的成长“,我不想主观的去评价这本书怎么样,尽管我确实也发现这本书存在很多的纰漏甚至是错误的地方;客观的把这些错误记录下来,希望大家在学习之余也抱着一种敢于怀疑的精神去批判一些东西。(由于本人能力有限,仅把自己看到过的问题记录了下来,肯定有很多疏漏的地方,欢迎各位补充,将不甚感激)。

1.这几天一直在看排序部分,书中207页很明显的错误”增量序列的取值依次为5,3,2,1“。我觉得这部分内容大家可以结合一下这篇博客来理解将很有帮助:http://blog.csdn.net/morewindows/article/details/6668714

2.pp125页 11.2私有继承 这道题似乎出的就有问题,选项上让人难以理解不说,而且解析的过程也让人有点“哭笑不得”的感觉。

B选项“私有继承使父类中的所有成员元素变成私有”,似乎可以说的过去;但是作者给的解析让人不得不怀疑----“子类真的只能继承父类的protected和public吗?”,上网搜了一些资料http://zhidao.baidu.com/question/325807184.html。有证据证明,private成员也被继承了。

#include <iostream>
using namespace std;

class Parent
{
public:
private:    
	int x,y;
};

class Child: public Parent{};


int main()
{ 	
	cout << sizeof(Child) << endl; 	
	return 0;
}


输出结果8表明继承了私有成员。(个人觉得是这样的)

C选项“私有继承使父类中的函数转化成私有”,“难道仅仅是函数?”,该项暂且不说。

至于D选项原文是(这是一道英文题)“private inherit make every member from parent not-accessible to sub-class",书中翻译为“私有继承使父类中所有元素无法与子类联系”,不禁要问”not-accessible翻译成联系?“,"是父类访问子类?还是子类访问父类?”即便是书中这样翻译的,子类通过成员仍然还是可以访问的,这是毫无疑问的,并且在它随后的“扩展知识”中也证实了这一点。

所以,感觉这道题出的很牵强,而且分析的也不怎么样。

3.pp130 将“function”翻译为“方法”。而且表述上,既然不需要链表,答案却偏偏选择了用了链表的一项。(这是在忽悠广大的读者吗?)。

4.pp131 对于“扩展知识”当中的包含“brass”和“instrument”这一句话,从何而来?


5.pp56  对于面试例题7,解析讲了半天毫无关系的东西,真让人怀疑有凑数之嫌;而且我也网上查找了一些资料,有的救证实,对于sizeof(string)根本就没有多大意义,因为它是跟编译器有关的。可以参考我转载的这篇文章:http://blog.csdn.net/wenhai_zh/article/details/10285835


6.pp58 例题8,有虚函数那题,解析的也够烂的,再说一个指针的题目,你写这么多,大题小做!而且我觉得作者更明显的意图是指向虚函数表的,而文中就以指针应付了事了。    对于例题10,不得不说明这个解析很牵强,是根据”内存对齐原则“,但不仅仅是要”选择4的倍数“.。努力做过这方面的研究就知道,在char p和int adf[3]之间要插入两个字节,最终是19个字节,然后才是根据4的倍数,扩充到了20;


原文地址:https://www.cnblogs.com/suncoolcat/p/3281559.html