Что означает оператор двоеточия (:) в "uint isWidget: 1;" в Qt? [дубликат]

этот вопрос уже есть ответ здесь:

что означает оператор двоеточия (:) в "uint isWidget : 1;" в Qt? Это "uint с естьвиджет : 1;" эквивалентно "uint с естьвиджет(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 
};

1 ответов


это часть C struct Примечание - Можно указать размер целочисленного поля в битах, с помощью : numBits после имени свойства.

Я должен предположить, что тот же синтаксис может использоваться в классе c++ (я парень C, но я уверен, что это делает то же самое в C++)