| 查看: 1280 | 回复: 20 | |||
| 当前主题已经存档。 | |||
yalefield金虫 (文坛精英)
老汉一枚
|
[交流]
【分享】恐怖的C++语言 [转载]
|
||
|
作者:酷壳 Linus曾经(2007年9月)在新闻组gmane.comp.version-control.git里和一个微软的工程师(Dmitry Kakurin)争执过用C还是用C++,当时的那个微软的工程师主要是在做Git的Windows版,但他却发现Git的源码居然是C语言写的,而不是C++,于是他(Dmitry Kakurin)在Linux社区里发贴表示对Linux的不满,语言很直接: Pure C as opposed to C++. No idea why. Please don’t talk about portability, it’s BS. (纯C写的,而不是C++,不知道为什么,请别告诉我是为了移植性,这完全是胡扯。) Linux之父Linus Torvalds马上跟贴,在贴子中,Linus言辞很直接,直接表明C++是一个很恐怖的语言,他在贴子中说: *YOU* are full of bullshit. C++ is a horrible language. It’s made more horrible by the fact that a lot of substandard programmers use it. (你才是完全在胡扯。C++是一门很恐怖的语言,而比它更恐怖的是很多不合格的程序员在使用着它) Linus的这个观点我是比较同意的,我个人也在几年前的《STL String类的写时才拷贝》以及以后的一些文章中表达过C++的确并不是一个很成熟的语言,这种观点一直都围绕着我。这是因为它的学习成本实在是太高了,编译器和类背着你做了很多你不知道的事,而且,C++非常容易地出错和发生很多意想不到的问题。 当然,这篇文章并不是要继续声讨C++,也不是回顾以前的某个事件。我们这里只谈技术。昨天,我在网上看到一个邪恶的C++的示例,在这里给大家share一下,让大家看看C++这种编程语言的恐怖和邪恶的一面。下面的这个例子,比那个“#define private public”还更加邪恶。 请看下面这段代码,你能告诉我它会输出什么吗?(注意main函数中高亮的那一行) [code] 01 #include 02 #include 03 04 typedef int UINT4; 05 using namespace std; 06 class Hack 07 { 08 }; 09 10 Hack& operator< (Hack &a , Hack &b) 11 { 12 std::cerr << "小于操作符\n"; 13 return a; 14 } 15 16 Hack& operator> (Hack &a, Hack &b) 17 { 18 std::cerr << "大于操作符\n"; 19 return a; 20 } 21 22 int main(int argc, char ** argv) 23 { 24 Hack vector; 25 Hack UINT4; 26 Hack foo; 27 28 vector 29 30 return(0); 31 } 是的,上面这段代码如果只看main函数中的那句“vector 1 vector.operator<(UNIT4).operator>(foo); 所以,所有的一切都符合我们的C++的规范和语法,自然程序也能被顺利编译通过(至少,在我的G++上是没有问题的)。而整个程序的运行结果自然是: 1 $ ./horror 2 小于操作符 3 大于操作符 是的,如果你通晓C++的一切的一切,你自然不会对这段程序感到惊奇。这样的事情在C/C++的世界中并不少见,要搞乱C/C++的代码并不是一件难事,花样多得数不胜数,只要看看《6个变态的C语言Hello World程序》(http://coolshell.cn/?p=914)你就知道了,而且,还有一个简单的教程《如何加密/混乱C源代码》(http://coolshell.cn/?p=933)告诉你一些简单的做法。 那么,如果你有一天在读程序中看到“vector http://coolshell.cn/?p=1724 |
» 猜你喜欢
孩子确诊有中度注意力缺陷
已经有12人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
2026博士申请-功能高分子,水凝胶方向
已经有6人回复
论文投稿,期刊推荐
已经有4人回复
硕士和导师闹得不愉快
已经有13人回复
请问2026国家基金面上项目会启动申2停1吗
已经有5人回复
同一篇文章,用不同账号投稿对编辑决定是否送审有没有影响?
已经有3人回复
2楼2009-12-05 12:59:15

3楼2009-12-05 13:47:15
baobiao007
木虫 (职业作家)
中国特色
- 应助: 201 (大学生)
- 金币: 6482.7
- 散金: 557
- 红花: 40
- 帖子: 3050
- 在线: 1009.9小时
- 虫号: 505962
- 注册: 2008-02-18
- 专业: 应用地球物理学

4楼2009-12-05 15:28:57
aristolee
铁杆木虫 (著名写手)
快乐家族之抿嘴笑:)
- 应助: 0 (幼儿园)
- 金币: 7442.5
- 散金: 697
- 红花: 7
- 沙发: 14
- 帖子: 2775
- 在线: 240小时
- 虫号: 912069
- 注册: 2009-11-25
- 性别: GG
- 专业: 制造系统与自动化

5楼2009-12-05 16:53:16
6楼2009-12-05 19:28:15
7楼2009-12-05 21:47:15
nebulaly
木虫 (著名写手)
- 应助: 7 (幼儿园)
- 金币: 4170.1
- 散金: 220
- 红花: 5
- 帖子: 1311
- 在线: 410.5小时
- 虫号: 910959
- 注册: 2009-11-24
- 专业: 计算机应用技术
8楼2009-12-05 22:52:21
wangen994
荣誉版主 (著名写手)
将军
- 程序强帖: 1
- 应助: 0 (幼儿园)
- 贵宾: 3.348
- 金币: 7797.4
- 散金: 404
- 红花: 5
- 帖子: 2007
- 在线: 242小时
- 虫号: 649482
- 注册: 2008-11-08
- 性别: GG
- 专业: 物理
- 管辖: 程序语言
9楼2009-12-05 23:01:31
yalefield
金虫 (文坛精英)
老汉一枚
- 程序强帖: 3
- 应助: 129 (高中生)
- 贵宾: 0.17
- 金币: 21238.9
- 散金: 3440
- 红花: 66
- 帖子: 12101
- 在线: 759.1小时
- 虫号: 96063
- 注册: 2005-10-07
- 专业: 高等教育学
- 管辖: 计算模拟
10楼2009-12-05 23:12:49













回复此楼
和一个黑洞洞的框框:dnd
就是DOS啦~),那时候真的是如腾云驾雾般啊,惶惶而不得终日,后来还是去机房恶补了computer基础的开关机,打开界面等等,又学习了C语言,才稍稍入门了,哈哈,这门课程就结束了,期末考试竟拿了90多分,应试教育啊