什么是C ++中的独立冒号

时间:2014-05-11 05:01:35

标签: c++

规范的Qt示例是:

class Counter : public QObject
{
    Q_OBJECT
    int m_value;
public:
    int value() const { return m_value; }
public slots:
    void setValue(int value);
signals:
    void valueChanged(int newValue);
};

Qt定义宏:

#define slots /* nothing */

预处理器运行后,我们留下:

public slots:
  void setValue(int value);
:
  void valueChanged(int newValue);
};

独立式结肠有什么影响?我可以在任何我想要的地方添加冒号吗?

int main() {
:
std::cout << "hi";
:
return 0;
}

独立冒号在C ++中做了什么,为什么允许?

1 个答案:

答案 0 :(得分:5)

:C中不允许独立C++

signals定义为public,所以

signals:
    void valueChanged(int newValue);

将被预处理为

public:
    void valueChanged(int newValue);

所以没有免费的冒号。

现在,插槽被定义为

public slots:
    void setValue(int value);

将被替换为(在用空格替换注释之后。

public :
    void setValue(int value);
相关问题