C++中的可视可见性修饰符

C++中的可视可见性修饰符,c++,C++,我正在阅读,他们截取了下面的代码 #include <QObject> class Counter : public QObject { Q_OBJECT public: Counter() { m_value = 0; } int value() const { return m_value; } public slots: void setValue(int value); signals: void valueChanged(i

我正在阅读,他们截取了下面的代码

#include <QObject>

class Counter : public QObject
{
    Q_OBJECT

public:
    Counter() { m_value = 0; }

    int value() const { return m_value; }

public slots:
    void setValue(int value);

signals:
    void valueChanged(int newValue);

private:
    int m_value;
};
我以前见过私人的、公共的和受保护的,但从来没有见过这样的事情

整个公共插槽:和信号:可见性修饰符是怎么回事?这就是它们的名称吗

他们的意思是什么?他们在标准中的什么地方谈论这个

我什么时候可以/应该在自己的代码中使用这些

插槽信号只计算为空字符串或修饰符,它们通过包含QObject.h隐式定义。这些只是Qt moc元对象编译器的标记。Q_对象正在扩展为一些通用的Qt类接口

moc将从您的头生成代码,并使用这些宏提供额外的信息,如“这些方法是插槽”或“这将是一个Qt类”

您应该只在Qt项目和开发“成为”并处理Qt对象的类时使用它们。例如,您自己的Qt小部件或任何应该能够发送/接收信号的对象

在标准中找不到关于这些宏的任何内容,因为它们不是标准的一部分。它只是Qt框架的一个扩展,只有在包含适当的Qt头文件时才能编译类。

插槽信号只计算为空字符串或修饰符,它们通过包含QObject.h隐式定义。这些只是Qt moc元对象编译器的标记。Q_对象正在扩展为一些通用的Qt类接口

moc将从您的头生成代码,并使用这些宏提供额外的信息,如“这些方法是插槽”或“这将是一个Qt类”

您应该只在Qt项目和开发“成为”并处理Qt对象的类时使用它们。例如,您自己的Qt小部件或任何应该能够发送/接收信号的对象


在标准中找不到关于这些宏的任何内容,因为它们不是标准的一部分。这只是QT框架的一个扩展,当你包含适当的QT头文件时,你只能编译你的类。

对,它们不是标准C++。我如何创建自己的修饰语,比如QT?它们不是标准的C++。我如何创建自己的修饰语,比如QT?注意语法高亮者错过了它们——它们不是标准C++;因此,不在标准中,而不是作为关键字着色。注意语法高亮者错过它们-它们不是标准C++;因此不在标准中,也不作为关键字着色。