簡單易懂的現代魔法第1話-魔法就是C++
請電腦高手出來說明http://dec.2chan.net:81/18/src/1247325191413.jpg
另,DAT ASS
http://dec.2chan.net:81/18/src/1247324667822.jpg
http://dec.2chan.net:81/18/src/1247324679269.jpg
http://dec.2chan.net:81/18/src/1247324837990.jpg 骤然发现自己的C++白学了 这不是C++的源代码吧,难道我白学了? 不是嗎?只知道有人說這是有100+錯誤的C++ 本帖最后由 爱尔卡拉 于 2009-7-12 00:48 编辑
当然是c++源码,你们就算没写过模板类也该看见过实现代码吧。
其实就贴出来的部分大致瞄一下并没几个错误,因为没贴全很多根本不能说是错误
template <int xxx, class xxx>
class Nixer {//这个不能是小括号
protected:
...
public:
....
xxx {return i<VOICES? voos.decode} //这错误比较明显,不过都能猜出来它想干什么
class xxx : public Nixer {//它这里知道用花括号了,但我忘了嵌套类里能不能引用没声明完全的类,估计不行
....
地球上目前只有c++代码是这么写的 从图来看,这告诉我们,C++可以直接写出LOLI来。
可恶,我只学了点JAVA java程序猿泪流满面 从图来看,这告诉我们,C++可以直接写出LOLI来。
可恶,我只学了点JAVA
dshunter 发表于 2009-7-12 00:45 http://bbs.saraba1st.com/images/common/back.gif
爪哇可以变出水盆来 先行版和这个第一话内容是一样? 直接用机械语言编码的是不是是能接触到世界的根源的魔法使桑麻了? 完全看不懂 6# PENTAX-DA
难道放不出火球? 作为一个专业人士,我感到压力很大
确实是C++
小错误么7F也说得差不多了
boost里面随便抽一段都不至于这么多错误啊
直接用机械语言编码的是不是是能接触到世界的根源的魔法使桑麻了?
xvi黑翼公 发表于 2009-7-12 00:56 http://bbs.saraba1st.com/images/common/back.gif
请先拿到ring0级权限谢谢 我承认只学过JAVA根本看不懂C++ 这代码描述的是什么? 本帖最后由 fenghou 于 2009-7-12 06:29 编辑
这代码描述的是什么?
松冈美羽 发表于 2009-7-12 01:34 http://bbs.saraba1st.com/images/common/back.gif
屏幕上这一段的关键内容是把某段声音解码。
有几段声音,可以选择解哪一段,还可以附加解码的条件,某一段解码后的结果可以作为另一段解码的条件。 用了个类模版 没写完整
还有不太清楚 typedef 要干什么 C++面向对象 不是已经 结构转类了么 这片看得有些昏昏欲睡,难看的上色。 错误都错得很微妙。用于混响的类名Mixer写成Nixer(当然编译不会出错);小括号、大括号和小于大于符号错用;诡异的typefdef和内嵌类写法……
要说没水平但已经可以写模板了;但犯的错误都是最最初学者都不会犯的。估计只是做成动画的时候誊写错误吧(为什么不是拷贝粘贴)…… 作为写C的我感到压力很大…… 改编算是挺用心的
原作第一卷是作者出道作,写的不够好
直接从比较精彩的第三卷开始做动画
不过可惜的是战斗部分不够华丽 v/256+128效率真低,怎么看都应该用位移嘛。还有前边u8是个什么类型,怎么从来没看过 这是魔法C++,语法和编译器都是不一样的 回28楼:内联函数 用了模板类和宏
其他都是基础中的基础吧 求编译器、.h、.lib或其他。 本帖最后由 RedNax 于 2009-7-12 11:55 编辑
v/256+128效率真低,怎么看都应该用位移嘛。还有前边u8是个什么类型,怎么从来没看过
skill 发表于 2009-7-12 10:05 http://bbs.saraba1st.com/images/common/back.gif
对于现代编译器来说写/256和位移效率没差别,因为在编译优化阶段就会优化成位移代码(如果位移代码效率更高的话)。
u8显然是自定义类型,一般就是unsigned char的typedef,为了平台移植性和代码统一性一般会这样转一下(因为你不能假定目标平台char类型就是8位)。
用了模板类和宏
其他都是基础中的基础吧
whisper219 发表于 2009-7-12 10:30 http://bbs.saraba1st.com/images/common/back.gif
没有用到宏……C++程序设计一般不建议用宏…… C++哪里简单易懂了!
对我来说 本帖最后由 精钢魔像 于 2009-7-12 13:26 编辑
c++ 分几种范式
1、当c 用,用c++的库
2、基于对象和面向对象
这2种都比较简单,也容易理解
剩下的一种是元编程,是c++ 的最高成就
原理是用预处理器和模板,在编译期生成合适的源代码,模块和接口的设计变得非常简单,效率和c同级甚至更快
这是从loki 发展而来,在boost 里发扬光大,在d 语言里更进一步(不过现在d 还很小众)
举个例子是
class c1 { public: void do_c1() { printf(\"253874\"); } };
template<typename cc> class c2 : public cc {...};
实例化
c2<c1> ccc;
ccc.do_c1(); // 打印253874
c1 的 do_c1 方法在编译期被组合成 c2 的方法,如此绕过了虚表的开销 这楼歪得太离谱了 c++ 分几种范式
1、当c 用,用c++的库
2、基于对象和面向对象
这2种都比较简单,也容易理解
剩下的一种是元编程,是c++ 的最高成就
原理是用预处理器和模板,在编译期生成合适的源代码,模块和接口的设计变得非常 ...
精钢魔像 发表于 2009-7-12 13:23 http://bbs.saraba1st.com/images/common/back.gif
我倒不觉得元编程是C++的最高成就,C++效率虽然比C低,但和其他语言相比已经超出一大截,如果不是在内嵌式系统这种硬件受限的场合(这种时候用C更多),现在的硬件环境已经没必要在效率上计较到极高的程度了。
相反,元编程带来的是编译器是否支持、编译时间极大增长等很多问题,在我看来远不如模板和命名空间对C++带来的好处大。
而且现在我极为反对写出别人一眼看不懂的代码,毕竟6个月后即使你自己看你的代码都好像是别人写的一样,这种阅读的时候需要用脑子来进行编译的代码越少越好(我觉得boost早已走火入魔了)。
随着时代的进步,C++这种偏底层的运用会越来越多地被基于运行时环境(java, .net framework)的应用取代吧,而且现在更有又向着更高层(Chrome OS,Pale Pre这种WebOS)演化的可能。这些C++的奇技淫巧会更多地被一些朴实的写法代替的吧…… 无论面向对象,面向过程
还是泛型,模板
编译后都是产生的机器码
c++那样的别扭语法和继承关系,效率比C高不太可能
但比较效率的话,汇编作为机器语言的直译
肯定要比捆绑了运行库的C强
而C++的运行库一般又比C运行库慢,而且C++的问题是各平台各编译器之间差别太大了
这也是底层的操作系统,嵌入式领域C一直是不二之选的原因
C++作为高级语言的优势还是更直观更接近直言语言的描述
更好的代码复用 一看就觉得是嵌入式的C++。。。 这贴是不是要移PC了
这么多年CPP算白学了 果然我等还是学的是凡人C++
页:
[1]
2