我不知道我在说什么是操作符重载问题。 是否有可能在C++中重载关键字?例如:我需要写loopOver(i = 0;; i ++)而不是for(i = 0 ;; i ++)??是可能在C++C++操作符重载
,我需要有2 AddTo就2而不是2 + 2
像请帮助 在此先感谢
我不知道我在说什么是操作符重载问题。 是否有可能在C++中重载关键字?例如:我需要写loopOver(i = 0;; i ++)而不是for(i = 0 ;; i ++)??是可能在C++C++操作符重载
,我需要有2 AddTo就2而不是2 + 2
像请帮助 在此先感谢
你不能做到这一点与运算符重载(可以不改变运营商的名称,只改变运营商的名称)。
然而,邪恶的,因为它是,如果你不想改变他们的工作(只是名称)的方式,你就可以实现这样的事情使用宏:
#define loopOver for
#define addTo +
(使用格外小心宏,但 - 如果使用不当,它们可能会导致可怕的问题)
打败我吧。精氨酸! :) – mkgrunder 2009-12-12 09:57:24
我upvoted这个,因为它是正确的答案,但只有在克服了我的反射冲动downvote包含代码重新定义'for'关键字的任何帖子。 – 2009-12-12 11:05:25
我同意。这是OP的答案,而不是“我应该这样做吗?”这个问题的答案,答案是强调“不!”。 – 2009-12-12 13:44:42
您可以使用#define指令
#define loopOver for
#define addTo +
但是,这只是坏了!
没有 - 这是没有运算符重载的问题。这里有一些信息:http://en.wikibooks.org/wiki/C%2B%2B_Programming/Operators/Operator_Overloading
你可以使用宏 的#define loopOver为 的#define AddTo就+ – OneOfOne 2009-12-12 09:56:06
你有一个隐藏的原因,想做到这一点? – Artelius 2009-12-12 09:58:33
你为什么*“需要写”*这个?有了背景,你可能会得到更多有用的答案。 – 2009-12-12 09:58:38