C ++'括号'运算符

时间:2012-11-03 15:44:58

标签: c++ class if-statement operators

在c ++中使用时如果使用这些大括号:

if (x == y)
{ <---
} <---

是否可以创建一个使用这些的类?在某个地方类似:

class x
{
    operator {} foo(int something)
    {
        do something...
    }
};

PS。我不知道这些括号是什么,大括号?

谢谢

4 个答案:

答案 0 :(得分:4)

不,因为大括号不是运算符,并且您无法创建新运算符 - 您可能只会重载现有运算符。

答案 1 :(得分:4)

大括号实际上用于许多不同的事情:

  • 复合语句
  • 初始值设定
  • Struct / enum / class / union / namespace specifier

(可能还有一些!)

这些都不是运营商,也不会超载。

您可能感兴趣的是C ++ 11的大括号初始化语法,如果您需要某种语法,可以使用它:

class x
{
    x(int something)
    {
        do something...
    }
};

x foo{5};

答案 2 :(得分:2)

是的,它们被称为花括号或花括号或花括号。它们表示一个块或一组初始化值。你无法重新定义它们的含义。

答案 3 :(得分:1)

(据我所知,它们被称为花括号或花括号。)

他们不是运营商。

在您提供if ()的示例中,它们定义范围的边界。或者说到OO,它们定义了命名空间。或者是一个班级。

而且我相信你不能超载它们(这没有任何意义,真的。)