免费注册 查看新帖 |

Chinaunix

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

习惯使用C,现在学习C++,感觉好不自由  关闭 [复制链接]

论坛徽章:
0
81 [报告]
发表于 2009-08-20 12:12 |只看该作者
template?所谓现代C++就是指这个吧?虚表绝对是一大区别。

论坛徽章:
0
82 [报告]
发表于 2009-08-20 12:59 |只看该作者
如果C++没有运行时多态,跟C也就没区别了

论坛徽章:
0
83 [报告]
发表于 2009-08-20 12:59 |只看该作者
感觉不自由那是因为你还站在C++大门外向里面看, 当你进了门之后你会感觉里面空间一样宽广,而且还有一些意外的惊喜。
当你有一天做项目架构,要分散N多代码给下面的代码工人写时。你会觉得C++才是你所需要的。

论坛徽章:
0
84 [报告]
发表于 2009-08-20 13:45 |只看该作者
又是一个语言之争的帖子啊,呵呵,还好这里的论坛比较温和。

其实从描述设计的角度去看,C++并不是很好。大家有兴趣可以看一看其作者在The Design and Evolution of C++(不过英文版的真TM难读,B.S的英文很晦涩),就明白C++为啥是这样了。它的目标首先就是Better C,因为当时效率还是一个很关键的问题。做出这个决定的原因,大家在书中可以找到描述的,是源于他博士时那个项目最初的失败。

论坛徽章:
0
85 [报告]
发表于 2009-08-20 13:47 |只看该作者

回复 #82 reiase 的帖子

有一个很关键的问题,多数人都忽略了,C++是strong typed而C不是。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
86 [报告]
发表于 2009-08-20 13:51 |只看该作者
C++是strong typed?

C++也有integer promtion吧?也有implied cast吧?好像有implied cast的语言都不会是strong typed的吧?虽然C++的类型转换的确比C的严格一些。

论坛徽章:
0
87 [报告]
发表于 2009-08-20 14:03 |只看该作者
吾写面向对象程序遵循一个原则:怎么能偷懒,怎么能省事就怎么来,不再企图考虑得那么周全。采用中庸之道,把握分寸。砒霜有毒,砒霜也可以治病,继承容易有耦合性问题,但有时继承也很好;组合很好,但组合有些地方不适用。

现实中有组合也有继承,有组装的汽车,也有生物繁殖的后代。

现代人走到今天是越来越不会中庸哲学了,怀念古希腊的中庸哲学..............................

论坛徽章:
0
88 [报告]
发表于 2009-08-20 14:35 |只看该作者
原帖由 starwing83 于 2009-8-20 13:51 发表
C++是strong typed?

C++也有integer promtion吧?也有implied cast吧?好像有implied cast的语言都不会是strong typed的吧?虽然C++的类型转换的确比C的严格一些。


Interger promotion和strong typed有冲突吗?我记得有本书(不记得是不是D&E了)讲C和C++区别时专门提到了这一点。下面是TC++PL中的一段描述:

C++ supports a variety of programming styles.  All are based on strong static type checking, and most aim at achieving a high level of abstraction and a direct representation of the programmer's ideas.  Each style can achieve its aims effectively while maintaining run-time and space efficiency.

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
89 [报告]
发表于 2009-08-20 15:31 |只看该作者
这里有介绍:http://en.wikipedia.org/wiki/Strongly_typed_programming_language

里面提出C也应该是强类型的(同时也是弱类型的)。我私自认为的定义:允许类型转换的全部是弱类型的语言。完全不允许类型转换的语言才是强类型的。当然如果降低标准的话:对类型转换提出限制的是强类型的,如果不加限制,则是弱类型的。如果基于第一种(更严格的定义),那么C/C++都是弱类型。而Haskell/python是强类型的。

论坛徽章:
0
90 [报告]
发表于 2009-08-20 15:31 |只看该作者
为什么从C换到C++?
有什么事C++能做而C不能做的?

C++的东西,我认为最在的优点不是class和object,而是template。
也有人用C做object oriented programming。即OOC。GTK也不是用C++做的,一样很优秀。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP