0

是否可以编写自己的条件语句或重载当前的条件语句?(就像 if 短手 - ?

我做了一些研究,找不到任何东西。我有一些想法:

do
{
   //Run Application
}if(...)//Only If variables are initialised

如果这是可能的,我将如何在 C++ 中这样做?

4

4 回答 4

3
do
{
   //Run Application
}if(...)//Only If variables are initialised

将转化为

if ( condition )
{
   //run application
}

那么为什么不这样做呢?

不可能创建新的运算符,也不可能重载三元运算符?:

你可以乱用预处理器,但最终得到的代码比只使用常规的if.

#define RUNIF(condition, statement) \
if ( condition ) \
{                \
   statement();  \
}

并称之为:

RUNIF(condition, RunApplication())

但就个人而言,我不想在生产代码中看到这一点。

于 2012-06-11T13:07:29.400 回答
2

在纯 C++ 中,您只能重载现有的运算符,而不能创建新的运算符。

也就是说,没有什么能阻止您使用预处理器自定义预处理器(就像 Qt 一样)。

于 2012-06-11T13:03:22.253 回答
1

您可以在此处找到可重载运算符的列表。所以你可以重载条件如&&and ||(虽然不推荐),但不是?:

其他关键字如do//不可重载whileif所以不能写

do {
  ...
} if()

以一种可编译的方式(无预处理器宏)

但你可以这样做:

if(...) {
  while(true) {
    ...
  }
}

注意:没有重载,只是简单的代码重组

于 2012-06-11T13:06:25.263 回答
0

在您放置的地方,if()您可以使用while并应用条件 - 就像在 plain中一样if,例如:

do
{
   Object x = getObject(); 
}while(x != null && x.getVal() > 12)
于 2012-06-11T13:06:16.507 回答