免费注册 查看新帖 |

Chinaunix

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

[C++] 确认一下c++中不能使用interface(如java)那样的功能把 [复制链接]

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
171 [报告]
发表于 2009-03-26 08:46 |只看该作者
帖子火了, 什么都飞进来了

招架不住了。

C++就是一门难学难用的语言, 包含太广。
你怎么可以在C++里面又写procedure base、object base、object orient、generic??
你怎么可以又搞functional又搞template metaprogramming呢???
你就不能专一点么????
你怎么又可以写出asm的代码, C代码, 还可以原汁原味模仿java代码呢????
你太花心了, 你坏


大家千万不要学C++啊。 要么学C, 要么学Java, 学学C#也蛮好的。
否则跟着花心的C++混久了, 在另外语言中找不到替代品, 就成天做小愤青了。


我太菜了,连大名鼎鼎的(btw, 还可以用C实现的, 当然, 汇编也可以的, 纸带更是没问题的)object-oriented都会拼错。
我就是一菜鸟啊,  大家不要听我的。
该学java的学java, 想学c的学c,  c++就是一无是处啊。

[ 本帖最后由 OwnWaterloo 于 2009-3-26 08:53 编辑 ]

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
172 [报告]
发表于 2009-03-26 08:57 |只看该作者
原帖由 艾斯尼勒 于 2009-3-26 00:05 发表
不知道叫你老兄还是老弟


老弟老弟, 显然是老弟, 小菜鸟一个~~~
今天刚满23

嗯,  还差几个小时,  目前22。

论坛徽章:
0
173 [报告]
发表于 2009-03-26 09:06 |只看该作者
原帖由 nutcracker 于 2009-3-26 07:20 发表
这种帖都加精……中国的技术社区也就只有这种帖能热起来了,SY强身YY强国啊.

JAVA比C++易学?不见得吧?再说就算JAVA比C++简单又如何?一边用着现代的x86架构PC,还有各种各样的IDE或RAD,却又一边说代码工人如何如 ...



编程曾经是什么神圣的事业么?呵呵

论坛,不就是交换经验心得的地方么?

当两个板块互不够了解的对方所支持的东西还掐起来的时候。你到底想说什么???

还是跳出来站到精神高地上用冷嘲热讽把所有的东西都贬低而让自己成为众矢之的?

论坛徽章:
0
174 [报告]
发表于 2009-03-26 09:08 |只看该作者
原帖由 OwnWaterloo 于 2009-3-26 08:57 发表


老弟老弟, 显然是老弟, 小菜鸟一个~~~
今天刚满23

嗯,  还差几个小时,  目前22。


嗯嗯,生日快乐。坚定心中的信念好好学吧。别对不起自己就成了

噢,另外C++难学,不难用(当然仅指会用的人而言)。

只是黄药师、无崖子不是人人都当的了的而已。

[ 本帖最后由 艾斯尼勒 于 2009-3-26 09:19 编辑 ]

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
175 [报告]
发表于 2009-03-26 09:36 |只看该作者
原帖由 艾斯尼勒 于 2009-3-26 00:05 发表
记得我上学的时候轻狂幼稚,曾经放言“在我看来那些写web程序的根本不叫程序员!”现在回来看很可笑。


我也有过这种想法, 但是自己写写web就不这么想了 ……
perl也是一种非常多人使用的语言, 也是用其广泛应用场景的。
但是我就是不喜欢它那种“做一件事可以用n种方法”的方式, 它被设计得太灵活了。更喜欢在这点上与其对立的python。
后者的代码, 在我看来, 漂亮得多。

java也是, 有其广泛的应用场景。
但是我就是不喜欢这种处处受限制的语言。


原帖由 艾斯尼勒 于 2009-3-26 00:05 发表
你再个性也要吃饭,而且无法自己一个人去编写这样大的软件,所以还是劝你从善如流

谢谢, 谢谢~~~    暂时还不需要。
哪天真要我去写java,  也没什么困难的。  就那么点东西。
所以我还在研究c++。


原帖由 艾斯尼勒 于 2009-3-26 00:05 发表
关于找工作这块,你说的也不错,C++搞的好确实非常稳定,因为可替代人才少啊。不过我那句话强调的是更“容易找到”稳定的工作,这点想来你也无法辩驳。


嗯, 我曲解你的话了。   我以为的重点是黑色部分,  其实是红色部分。
确实如红色部分这样。

原帖由 艾斯尼勒 于 2009-3-26 00:05 发表
你指的多核,这个我不太了解,不过我想总有一天JVM、CLR也是可以实现的,到时候语法上加个关键字应该就可以解决吧。

JVM我记得是C写的,不过我一直以为C++也是可以用C++写出来的。

已经有相应的synchronous和lock了吧。

它们也可以利用多核的优势, 但是要靠c/c++去铺路。

同时, 我觉得学c/c++对多核理解更透彻一点, jvm和clr在这里屏蔽了一层, 学起来总是隔靴搔痒


原帖由 艾斯尼勒 于 2009-3-26 00:05 发表
JAVA不是为了计算而设计的语言,恩。C++其实也不是,cobol才是吧?实际上面向对象语言是对现实世界的简单模拟,是用来解决应用问题而非科学计算的,现在更多的软件是做这方面的。虽然现在高级语言都有相关的包或者库


java必然不是

c++难说哦。 cplusplus is a general purpose programming langauge。
它是很花心的, 它才是什么都想吃。

FORTRAN据我了解, 也只是在向量机上才有优势。
c99增加了restrict关键字, 就是为了在这方面弥补差距。  或者说, 提示编译器, 充分使用向量机的优势。
既然c99有, c++也就有了。

嗯,  肯定马上有人要说, java也有了, .net也有了。
想想吧, 写java和c#的时候,使用jni和p/invoke的几率, 与c++使用c的几率。
再想想java和c#有多少人勇于使用jni和p/invoke, 而c++使用c代码是一开始就有的事情。
许多c++教材的第一个程序就是
#include < stdio.h >
int main() { printf("hello world\n"; }

有教材用jni和p/invoke写这个吗?


同时, c++本身也有独立的优化技术 —— template。
有个叫Blitz++的库, 就是用于科学计算的。
据说, 仅仅是据说, 我也没使用过。 可以赶超fortran。


原帖由 艾斯尼勒 于 2009-3-26 00:05 发表
JVM我记得是C写的,不过我一直以为C++也是可以用C++写出来的。


以前也有一个牛人说, 他想设计一种能 “自己把自己双脚跟提起来” 的语言, 可以自举的语言。
后来没时间和他交流了。 不过估计他还是没做出来的
他喜欢想, 不太愿意动手。

但是想得很深刻!

反正, 我想不出来有什么办法可以让语言自举 ……
c++的第一个编译器是c写的, 估计今后还是得由c写。


原帖由 艾斯尼勒 于 2009-3-26 00:05 发表
但我仍然认为C++确实没什么前途(有人说C已死,这点我不认同。毕竟太多地方还是要用C去写,比如OS。C++可以写出QT写KDE,但C也能搞出gnome)。没什么前途不代表语言不行,而是行业内巨头们都不去重视他了,不只是公司。


C应该死不了 ……   如今的语言, 没有和c交互的手段, 除了写写hello world, 还有人会去用么, 真能干什么事么 ……
已经可以说明c的重要性了。

我觉得c的薄弱就是语言提供的抽象机制太少。 当然, 从另一方面, 这是它的优势。
c工程做大之后, 同样不是简单学学c就可以去维护的, 也是有所谓的心智包袱的。

为什么用c不用asm, 还不是因为asm抽象机制更少, 对大工程不实际。
那么工程更大之后, c的抽象机制薄弱之处带来的代价, 比c简单带来的收益更大之后, 为什么不采用一些c++的抽象机制呢?

当然, 肯定又有牛人要说, 他就喜欢用c写oo, 他就是经常在c中写asm。
你确实可以写得很好, 但是你的team member呢?
这就像c++中滥用高级特性, 不顾团队水平一样 ……


原帖由 艾斯尼勒 于 2009-3-26 00:05 发表
关于我们的滑铁卢兄所说别被商业公司当枪使这事儿,其实不只是java,绝大多数讲语言的书都会把该语言吹的天花乱坠。比如早期讲VC的讲DEPHI的讲BC的都会把编译器说的几近完美无所不能。只不过刚好JAVA 是TM注册商标,编译器、虚拟机又好像被SUN垄断了没有竞争,导致成了OWL兄的炮轰对象。其实IBM也是有java编译器jikes,GNU也有,好像GNU还有java虚拟机?貌似刚装好的FC就是gnu的jvm。另外说一句如果我没理解错sun把所有的软件都开源了。虽然它快挂掉了。恩,我承认由于java的关系,我确实很喜欢太阳这家公司哈哈


ibm好像把sun收购了吧???

确实很多书籍 ……   看着就恶心 ……
比如有本书, 开口闭口‘在 macrosoft visual studio 2005(还有个注册商标的符号在后面……) 怎么怎么操作)


但其实c#我是蛮喜欢的, 他确实是在为开发者着想。
using, 匿名委托, 真正的范型, lambda表达式,var, dynamic ……
不像java……   就是jg的玩物。

[ 本帖最后由 OwnWaterloo 于 2009-3-26 09:38 编辑 ]

论坛徽章:
0
176 [报告]
发表于 2009-03-26 09:40 |只看该作者
HI 兄弟们,能否把.net C#也连带比较一下,毕竟他也是主流语言,接口实现的也不错。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
177 [报告]
发表于 2009-03-26 09:42 |只看该作者
原帖由 艾斯尼勒 于 2009-3-26 09:08 发表
嗯嗯,生日快乐。坚定心中的信念好好学吧。别对不起自己就成了
噢,另外C++难学,不难用(当然仅指会用的人而言)。


谢谢谢谢~~  我也觉得不难用  ……  还挺好使的。

不知道那个说c++有心智包袱的家伙是不愿学习呢, 还是管理不了团队 ……
才40岁啊 ……


对于那种不假思索, 开口就 “纯c实现oo”的家伙 ……   和他多说无益
让大牛走大牛的路吧

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
178 [报告]
发表于 2009-03-26 09:44 |只看该作者
原帖由 art_codes 于 2009-3-25 23:12 发表

我也知道东西越底层越灵活,代价也就是越难操作……
那大哥我想问一下,那一般像c++这样的程序,怎么才能真正融入一下实际的项目中呢?(除了想嵌入式那样的)
比如网站方面…………用java调用c++程序么?( ...


网络我不懂 ……    但是, c++应该是不适合做网站的 ……
听听别人的意见吧。

论坛徽章:
0
179 [报告]
发表于 2009-03-26 09:47 |只看该作者
比较Python和Perl,会引起很多纷争。

Perl虽然有N多方法,个人来说,处理一件事情我只记住了一种实践过最可靠的方法,其他N-1我也不关心。
Python很华丽,不过我发现我的同事如果不加注释我照样看不懂,当然,代码量上去了。

语言发明者并不需要思考程序实现者为什么会把程序写的那么烂。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
180 [报告]
发表于 2009-03-26 09:54 |只看该作者
原帖由 reiase 于 2009-3-25 22:19 发表
1. Java是很高效的语言,这个问题在本版讨论过
http://bbs.chinaunix.net/viewthread.php?tid=1291900


高效?  搞笑吧??

我看了你给的那个链接, 但是页面中的链接就没再去看了。
这种噱头都看腻了。 希望你不要被那些商家所蒙蔽

曾经还有人得出c++效率不如一门什么脚本语言来着。
他用cygwin编译出的东西跑。  你觉得这能说明什么?
那些链接里是否也是这样?



你提到局部性原理。 那么很简单的道理。

vector< int >和 vecotr< int* > 谁得局部性更好??

确实, java的堆分配策略, 也许可以使得 Integer 是连续排放的。 但是 sizeof(Integer) 必然比 sizeof(int) 大得多。

再看
f() {
  vector< int > v;
}


f() {
  vector< int* > *pv;
}
谁得局部性更好???


如果要说jit运行时根据cpu优化, c/c++同样可以根据特定的cpu编译。
c和c++的效率要看代码质量, 可以说是不相上下的。 同时c++有更好的抽象性。
如果要在c中实现 动态范型数组, 效率显然是在vector< int >之下。

java和clr 和c/c++比效率就是没前途了。

[ 本帖最后由 OwnWaterloo 于 2009-3-26 10:19 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP