免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 无风之谷
打印 上一主题 下一主题

让我欢喜让我忧——我的C++之路 [复制链接]

论坛徽章:
12
巳蛇
日期:2013-09-16 15:32:242015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之约旦
日期:2015-02-11 14:38:37双鱼座
日期:2015-01-05 11:05:47戌狗
日期:2014-12-08 09:41:18戌狗
日期:2014-08-15 09:29:29双子座
日期:2014-08-05 09:17:17卯兔
日期:2014-06-08 15:32:18巳蛇
日期:2014-01-27 08:47:08白羊座
日期:2013-11-28 21:04:15巨蟹座
日期:2013-11-13 21:58:012015年亚洲杯之科威特
日期:2015-04-17 16:51:51
751 [报告]
发表于 2012-04-21 10:34 |只看该作者
0xC1988 发表于 2012-04-21 09:27
你说的一定是这个


OMG,这。。。

论坛徽章:
0
752 [报告]
发表于 2012-04-21 11:39 |只看该作者
pmerofc 发表于 2012-04-21 09:10
很多人都没看到700楼编辑前的内容
那是该书第3章前两页的内容
我看了一眼


这里确实是一个错误
可能是在后期的排版过程中错位引起的
这个错误会在再次重印的时候改正的

谢谢你指出

论坛徽章:
0
753 [报告]
发表于 2012-04-21 11:56 |只看该作者
陈良乔 发表于 2012-04-21 11:39
这里确实是一个错误
可能是在后期的排版过程中错位引起的
这个错误会在再次重印的时候改正的


这个也是“在后期的排版过程中错位引起的”:

论坛徽章:
0
754 [报告]
发表于 2012-04-21 11:57 |只看该作者
关于string.h和memory.h,我想我们已经经过足够的自由辩论了,就像辩论赛一样,让我们最后来一个总结发言吧,然后将总结发言放到投票贴子中,让大家用鼠标表态吧
争论下去,恐怕谁也无法说服谁

为什么我要在程序中include <memory.h>来使用memset?
还记得在大学时刚开始接触C++,老师就告诉我说,应该将函数声明放在与之相关的头文件中,getrectarea应该放在rect.h而不是与之关系不大的circle.h中。

正是基于这样的教育,所以我才觉得将memset操作内存的函数放在memory.h要比放在一个操作字符串的string.h中要更加合适。从这里,我们也可以看到,将memset放到string.h至少是标准的一个瑕疵。我想这一点应该是大家的共识。如果你不认同这一点,那么下面的内容就没有必要再看了。

那么现在问题归结到了如何面对一个有瑕疵的标准,或者是如何面对标准中的瑕疵。大家的观点是,既然是标准,虽然有瑕疵,也要无条件的遵守,否则岂不乱套了。而我的观点是,虽然是标准,但是有瑕疵,并且,现在的主流编译器都提供了弥补方案(memory.h),为什么不采用这些更好的弥补方案而要去一错到底?

大家反驳说,有些实现并不提供memory.h,在我看来,这是一种权衡和取舍,这些非主流的实现,我八辈子都不会用到,我为什么要去为了这些八辈子都不会用到的实现而去牺牲自己程序的可读性?

所以,我觉得用memory.h并无什么不妥



论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
755 [报告]
发表于 2012-04-21 12:09 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
756 [报告]
发表于 2012-04-21 12:12 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
757 [报告]
发表于 2012-04-21 12:13 |只看该作者
本帖最后由 变异老鼠 于 2012-04-21 12:23 编辑
陈良乔 发表于 2012-04-21 11:57
那么现在问题归结到了如何面对一个有瑕疵的标准,或者是如何面对标准中的瑕疵。大家的观点是,既然是标准,虽然有瑕疵,也要无条件的遵守,否则岂不乱套了。而我的观点是,虽然是标准,但是有瑕疵,并且,现在的主流编译器都提供了弥补方案(memory.h),为什么不采用这些更好的弥补方案而要去一错到底?


反正你的逻辑就是:只要自己觉得看着顺眼,随便标准怎么说都无所谓。

我还觉得 char 应该叫 byte 呢。

标准虽然有你所谓的“瑕疵”,但它是可用的,而且只涉及到一个文件名,不会给代码实现增加任何复杂性,也不会给交流造成任何困难(只要双方对语言有基本的了解)。使用这种“弥补方案”除了降低程序的可移植性之外没有任何好处。

你放心,我不指望能说服你,前面的回帖已经证明这是不可能的事情了。更重要的是,我知道你八辈子都只用 MSVC,你就心安理得地用你的 memory.h 吧。

最后,麻烦你把书名改成“我的第一本 VC++ 书”,成不?

编辑一下:
为了避免我的“八辈子”有人身攻击的嫌疑,特此拍照留念。
陈良乔 发表于 2012-04-21 11:57
大家反驳说,有些实现并不提供memory.h,在我看来,这是一种权衡和取舍,这些非主流的实现,我八辈子都不会用到,我为什么要去为了这些八辈子都不会用到的实现而去牺牲自己程序的可读性?

论坛徽章:
12
巳蛇
日期:2013-09-16 15:32:242015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之约旦
日期:2015-02-11 14:38:37双鱼座
日期:2015-01-05 11:05:47戌狗
日期:2014-12-08 09:41:18戌狗
日期:2014-08-15 09:29:29双子座
日期:2014-08-05 09:17:17卯兔
日期:2014-06-08 15:32:18巳蛇
日期:2014-01-27 08:47:08白羊座
日期:2013-11-28 21:04:15巨蟹座
日期:2013-11-13 21:58:012015年亚洲杯之科威特
日期:2015-04-17 16:51:51
758 [报告]
发表于 2012-04-21 12:19 |只看该作者
变异老鼠 发表于 2012-04-21 12:13
反正你的逻辑就是:只要自己觉得看着顺眼,随便标准怎么说都无所谓。

我还觉得 char 应该叫 byte 呢 ...


这哥们要真用VC,怎么会连int占几个字节都不知道。。。

论坛徽章:
0
759 [报告]
发表于 2012-04-21 12:20 |只看该作者
哈,来看看热闹。国内出的技术书籍,能深入下去的确实很少,基本都是围绕着入门转。英文书籍和官方的英文文档,能看进去的话,实际上都是很好理解的。对于很多培训出来的小孩,搜索只知道百度,看页面不能带字母的,那就没辙了

论坛徽章:
0
760 [报告]
发表于 2012-04-21 12:32 |只看该作者
zhaohongjian000 发表于 2012-04-21 12:19
这哥们要真用VC,怎么会连int占几个字节都不知道。。。


我也奇怪了
写这本书的时候,我更多的用的是MinGW,偶尔用一下VC,看看是否兼容
关于int的字节,这确实是一个非常严重的低级错误,这是不可原谅的,在此郑重地向读者道歉
重印的时候,已经作了修订,希望能够将这个影响减到最低

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP