今天看到在struct内部定义的函数,记录一下:
typedef struct PreStruct
{
string Method;
qint32 q;
float area;
int i;
//构造函数
PreStruct()
{
Method = "";
q=0;
area =0.0;
i=0;
}
}PRESTRUCT,*PPRESTRUCT;
typedef struct ExampleStruct
{
QString Method;
qint32 q;
float area;
int i;
//构造函数
ExampleStruct()
{
Method = "";
q=0;
area =0.0;
i=0;
}
ExampleStruct& operator=(const PRESTRUCT& preStruct )
{
Method= QString::fromStdString(preStruct.Method);
q = preStruct.q;
area = preStruct.area;
i = preStruct.i;
return *this;
}
PRESTRUCT CopyToPRESTRUCT()
{
PRESTRUCT preStruct;
preStruct.Method= Method.toStdString();
preStruct.q =q ;
preStruct.area =area ;
preStruct.i =i;
return preStruct;
}
}EXAMPLESTRUCT,*PEXAMPLESTRUCT;
解释:
这里定义了两个结构体:PRESTRUCT 和 EXAMPLESTRUCT
它们的却别在于:Method的类型不一样,一个是QString 一个是std::string
所以在使用的过程中,就涉及到类型转换
转换函数CopyToPRESTRUCT