Files
checker_host/base/base.h
2023-11-26 23:05:35 +08:00

80 lines
1.8 KiB
C++

#ifndef BASE_H
#define BASE_H
#include "QByteArray"
#include "QList"
class myarray:public QByteArray
{
public:
myarray(){}
myarray(const char *data,int len):QByteArray(data,len){}
myarray(const char *data):QByteArray(){
int len=strlen(data)+1;
QByteArray::append(data,len);
}
myarray(int size,char data):QByteArray(size,data){}
myarray(const myarray &data):QByteArray(data){}
virtual ~myarray(){}
char operator [](int index){
int size=this->size();
if(index<0) index=size+index;
if(index<0||index>=size) return char(0);
return QByteArray::operator [](index);
}
myarray &operator =(const myarray &b){
QByteArray::operator =(b);
return *this;
}
// myarray &operator =(const myarray b){
// QByteArray::operator =(b);
// return *this;
// }
myarray &operator =(const QByteArray &b){
QByteArray::operator =(b);
return *this;
}
// myarray &operator =(const QByteArray b){
// QByteArray::operator =(b);
// return *this;
// }
};
class mystring:public QString
{
public:
mystring(){}
mystring(const char *data):QString(data){}
mystring(myarray &data):QString(data.data()){}
mystring(QByteArray &data):QString(data.data()){}
mystring(QByteArray data):QString(data.data()){}
mystring(QString &data):QString(data){}
mystring(QString data):QString(data){}
virtual ~mystring(){}
const char *data(){
localdata=QString::toLocal8Bit();
return localdata.data();
}
mystring &operator =(const QString &b){
QString::operator =(b);
return *this;
}
protected:
myarray localdata;
};
template<typename T>
QList<T> str_to_nums(mystring str,char c);
myarray str_to_data(mystring str,char c);
#endif // BASE_H