📄 variant.h
字号:
#ifndef _M_VARIANTTYPE_2004_7_13_ZHY_H
#define _M_VARIANTTYPE_2004_7_13_ZHY_H
#pragma warning(disable:4786)
#include <string>
using namespace std;
#include "exception.h"
using namespace CommonInclude;
namespace CommonInclude{
enum VARIANT_TYPE
{
TYPE_NONE = 0,
TYPE_INT = 1,
TYPE_STR = 3,
TYPE_PROPERTY = 4,
TYPE_TIME = 5
};
class CProperty;
class CVariant
{
public:
CVariant();
~CVariant();
CVariant(const CVariant& var);
CVariant(int nValue);
CVariant(const char* szString);
CVariant(const string& strString);
CVariant(const CProperty& property);
CVariant(const CTime& time);
VARIANT_TYPE GetType() const
{
return m_nType;
}
const CVariant& Assign(const CVariant& val);
const CVariant& Assign(int nValue);
const CVariant& Assign(const char* szString);
const CVariant& Assign(const string& strString);
const CVariant& Assign(const CProperty& property);
const CVariant& Assign(const CTime& time);
const CVariant& operator=(const CVariant& val)
{
return Assign(val);
}
bool operator==(const CVariant& val) const
{
return IsEqual(val) == 0;
}
bool operator!=(const CVariant& val) const
{
return IsEqual(val) != 0;
}
bool operator>=(const CVariant& val) const
{
return IsEqual(val) >= 0;
}
bool operator<=(const CVariant& val) const
{
return IsEqual(val) <= 0;
}
bool operator > (const CVariant& val) const
{
return IsEqual(val) > 0;
}
bool operator < (const CVariant& val) const
{
return IsEqual(val) < 0;
}
int AsInteger() const;
float AsFloat() const;
const string& AsString() const;
const CProperty& AsProperty() const ;
const CTime& AsTime() const ;
int& AsRefInteger();
string& AsRefString();
CProperty& AsRefProperty();
CTime& AsRefTime();
string & Appen2String(string & str) const;
VARIANT_TYPE m_nType;
union InternalData
{
InternalData():m_nValue(0){}
int m_nValue;
float m_fValue;
string* m_pStrValue;
CProperty* m_pProperty;
CTime* m_pTime;
};
InternalData m_data;
private:
int IsEqual(const CVariant& val) const;
void Empty();
};
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -