"uint isWidget:1;"中冒号(:)运算符的含义是什么?在Qt?

Sul*_*lla 10 c++ syntax qt operators colon

"uint isWidget:1;"中冒号(:)运算符的含义是什么?在Qt?是"uint isWidget:1;" 相当于"uint isWidget(1)"?

Qt中的代码是

QObjectData 
{
  public:
     virtual ~QObjectData() = 0;
     QObject *q_ptr;
     QObject *parent;
     QObjectList children;

     uint isWidget : 1;
     uint pendTimer : 1;
     uint blockSig : 1;
     uint wasDeleted : 1;
     uint ownObjectName : 1;
     uint sendChildEvents : 1;
     uint receiveChildEvents : 1;
     uint inEventHandler : 1;
     uint inThreadChangeEvent : 1;
     uint hasGuards : 1; //true iff there is one or more QPointer attached to this object
     uint unused : 22;
     int postedEvents;
     QMetaObject *metaObject; // assert dynamic 
};
Run Code Online (Sandbox Code Playgroud)

tob*_*ies 14

这是C struct表示法的一部分- 您可以使用: numBits属性名称后面的内容以位为单位指定整数字段的大小.

我必须假设在C++类中可以使用相同的语法(我是一个C家伙,但我确信这在C++中做同样的事情)

  • 它基本上是相同的 - C和C++之间的差异是你所期望的,例如,在C++中,位域可以是私有的. (2认同)