0

在 c++ 中,如果您使用这些类型的花括号:

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

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

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

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

谢谢你

4

4 回答 4

5

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

  • 复合语句
  • 初始化器
  • 结构/枚举/类/联合/命名空间说明符

(可能还有更多!)

这些都不是运算符,也不能重载。

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

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

x foo{5};
于 2012-11-03T15:52:44.813 回答
4

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

于 2012-11-03T15:46:53.337 回答
2

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

于 2012-11-03T15:47:08.360 回答
1

(就我而言,它们被称为花括号或花括号。)

他们不是运营商。

if ()您提供的示例中,它们定义了范围的边界。或者当涉及到 OO 时,他们定义了一个命名空间。或者一堂课。

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

于 2012-11-03T15:47:18.853 回答