中国开发网: 论坛: 程序员情感CBD: 贴子 312469
村支书
软件大师也未必不出很低级的谬论
李幼仪:清华大学自动化专业博士,长期从事系统软件分析。
  甘志:上海交大计算机应用专业博士,专业研究网络安全和密码理论。
  本人:最高学历小学三年级,从来也没有老师教过我一堂电脑课且36岁才开始玩电脑,只是身经百战杀出来草莽英雄。
  两位大师级人物写的所有书,都不是软件开发的中级水平能读懂的,如C++ Builder高级应用开发指南,Delphi 7高级应用开发篇等,都是二位的大作。
  但软件大师也未必不说出很低级的谬论,请看此两位大师之言:
  C++ Builder高级应用开发指南第15页:
  class TDate
  {
   public:
   int Year,Month,Day;
   void SetValue(int Year,int Month,int Day);
   bool LeapYear();
  };
  int main()
  {
   TDate d1;
   TDate pd2=new TDate();
  
   d1.SetValue(2001,1,1);
   pd2->SetValue(2001,1,1);
  
   if(d1.LeapYear())
   printf("Leap year:%d",d1.Year);
  
   delete pd2;(本人注:用在此处也是错的,但原书如此)
   if(pd2->LeapYear())
   printf("Leap year:%d",pd2->Year);
  
  }
  如果只有delete pd2用错地方,我不会说什么,因为可能是排版错误。
  TDate pd2=new TDate();这句绝对是错的,正确应该为TDate *pd2=new TDate();我最初也当其是排版错误。
  但你请看第15页下面一段话:
  由上面的程序可以看出,可以用两种方法生存一个类的对象,静态生成得对象用“.”号来引用对象的方法和属性,动态生成得对象用“->”号来引用对象的方法和属性......
  第十六页:VCL类以及用户从VCL派生的类只能采用动态生成的方式建立。
  我笑得快要喷饭了,不得不怀疑这两位老兄C++入门了没有!现在我正仔细往下看,里面错漏百出,到时一并拿出来共享。
  我本不想在这里发,我原本发邮件给清华大学出版社的总编要求更正。然而,也许因为本人什么学历也没有,在这个重文凭的社会,他
  理都不理我。






相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录