wal*_*lyk 5 c++ qt class keyword
我遇到了类似于此的声明(根据NDA更改了名称):
class Foo
{
int bar;
public:
explicit Foo (Fu *parent = NULL);
private:
void somefunc (String);
signals: // ??? what does this do ???
void windowClosed();
};
Run Code Online (Sandbox Code Playgroud)
这是由g ++ 4.4.7(从大约2012年)成功编译的.此外,vim将其识别为类似的关键字,public并private以棕色突出显示.(DIS)similiarly,Vim使用绿色突出关键字namespace,class,void,int,double,float,char,unsigned,等.
在#1代码格式化并没有突出signals像它上面public和private!
事实证明谷歌很难(很多噪音),但我没有发现任何提及它,甚至没有提到它.我还查看了g ++文档的增强功能部分.
这个代码库很大(2300万行),古老(〜1998),并且有明显的重音.例如,相同的类定义private slots:在两个成员函数之前具有类访问权限.所以有可能会有一些#define混淆或欺骗,但我找不到它grep.g ++可能已被更改,但其--version输出并不表示修改.
它不是关键字,如果您使用的是Qt之类的框架,它将在语言中添加“关键字”以提供不属于标准的其他功能。
例如,在Qt中,此代码由MOC(元对象编译器)处理,signals定义qobjectdefs.h为#define signals public,moc检查该宏以添加元代码并提供实际的信号时隙功能,并将生成的代码放入名称为“ moc_myClass.cpp”的文件。
| 归档时间: |
|
| 查看次数: |
2058 次 |
| 最近记录: |