⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qbitarray.h

📁 著名的A780系列,E680系列的SDK开发包
💻 H
字号:
/****************************************************************************** $Id: qt/src/tools/qbitarray.h   2.3.6   edited 2001-01-26 $**** Definition of QBitArray class**** Created : 940118**** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.**** This file is part of the tools module of the Qt GUI Toolkit.**** This file may be distributed under the terms of the Q Public License** as defined by Trolltech AS of Norway and appearing in the file** LICENSE.QPL included in the packaging of this file.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition** licenses may use this file in accordance with the Qt Commercial License** Agreement provided with the Software.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for**   information about Qt Commercial License Agreements.** See http://www.trolltech.com/qpl/ for QPL licensing information.** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef QBITARRAY_H#define QBITARRAY_H#ifndef QT_H#include "qstring.h"#endif // QT_H/*****************************************************************************  QBitVal class; a context class for QBitArray::operator[] *****************************************************************************/class QBitArray;class Q_EXPORT QBitVal{private:    QBitArray *array;    uint    index;public:    QBitVal( QBitArray *a, uint i ) : array(a), index(i) {}    operator int();    QBitVal &operator=( const QBitVal &v );    QBitVal &operator=( bool v );};/*****************************************************************************  QBitArray class *****************************************************************************/class Q_EXPORT QBitArray : public QByteArray{public:    QBitArray();    QBitArray( uint size );    QBitArray( const QBitArray &a ) : QByteArray( a ) {}    QBitArray &operator=( const QBitArray & );    uint    size() const;    bool    resize( uint size );    bool    fill( bool v, int size = -1 );    void    detach();    QBitArray copy() const;    bool    testBit( uint index ) const;    void    setBit( uint index );    void    setBit( uint index, bool value );    void    clearBit( uint index );    bool    toggleBit( uint index );    bool    at( uint index ) const;    QBitVal operator[]( int index );    bool operator[]( int index ) const;    QBitArray &operator&=( const QBitArray & );    QBitArray &operator|=( const QBitArray & );    QBitArray &operator^=( const QBitArray & );    QBitArray  operator~() const;protected:    struct bitarr_data : public QGArray::array_data {	uint   nbits;    };    array_data *newData()		    { return new bitarr_data; }    void	deleteData( array_data *d ) { delete (bitarr_data*)d; }private:    void    pad0();};inline QBitArray &QBitArray::operator=( const QBitArray &a ){ return (QBitArray&)assign( a ); }inline uint QBitArray::size() const{ return ((bitarr_data*)sharedBlock())->nbits; }inline void QBitArray::setBit( uint index, bool value ){ if ( value ) setBit(index); else clearBit(index); }inline bool QBitArray::at( uint index ) const{ return testBit(index); }inline QBitVal QBitArray::operator[]( int index ){ return QBitVal( (QBitArray*)this, index ); }inline bool QBitArray::operator[]( int index ) const{ return testBit( index ); }/*****************************************************************************  Misc. QBitArray operator functions *****************************************************************************/Q_EXPORT QBitArray operator&( const QBitArray &, const QBitArray & );Q_EXPORT QBitArray operator|( const QBitArray &, const QBitArray & );Q_EXPORT QBitArray operator^( const QBitArray &, const QBitArray & );inline QBitVal::operator int(){    return array->testBit( index );}inline QBitVal &QBitVal::operator=( const QBitVal &v ){    array->setBit( index, v.array->testBit(v.index) );    return *this;}inline QBitVal &QBitVal::operator=( bool v ){    array->setBit( index, v );    return *this;}/*****************************************************************************  QBitArray stream functions *****************************************************************************/#ifndef QT_NO_DATASTREAMQ_EXPORT QDataStream &operator<<( QDataStream &, const QBitArray & );Q_EXPORT QDataStream &operator>>( QDataStream &, QBitArray & );#endif#endif // QBITARRAY_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -