本文介绍了在“uint isWidget:1;”中的colon(:)运算符的含义是什么?在Qt?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

What is the meaning of colon (:) operator in "uint isWidget : 1;" in Qt? Is "uint isWidget : 1;" equivalent to "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 
};


推荐答案

这是C struct 符号 - 您可以使用属性名称后面的:numBits 以位为单位指定整数字段的大小。

This is part of C struct notation - you can specify the size of an integer field in bits by using a : numBits after the property name.

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

I must assume that the same syntax can be used in a C++ class (i'm a C guy, but i'm sure that this is doing the same thing in C++)

这篇关于在“uint isWidget:1;”中的colon(:)运算符的含义是什么?在Qt?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 16:32