📄 any.cpp
字号:
// ANY.cpp: implementation of the ANY class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Database.h"
#include "ANY.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
ANY::ANY()
{
type=0;
ival=0;
}
ANY::~ANY()
{
switch(type)
{
case CHAR_TYPE:
case VARCHAR_TYPE:
delete pcval;
break;
case TIME_TYPE:
delete ptval;
break;
case DATE_TYPE:
delete pdval;
break;
default:
break;
}
}
ANY & ANY::operator =(const ANY &value)
{
switch(type)
{
case CHAR_TYPE:
case VARCHAR_TYPE:
delete pcval;
break;
case TIME_TYPE:
delete ptval;
break;
case DATE_TYPE:
delete pdval;
break;
default:
break;
}
type=value.type;
switch(type)
{
case INT_TYPE:
ival=value.ival;
break;
case FLOAT_TYPE:
fval=value.fval;
break;
case CHAR_TYPE:
case VARCHAR_TYPE:
pcval=new CString(*(value.pcval));
break;
case TIME_TYPE:
ptval=new Time(*(value.ptval));
break;
case DATE_TYPE:
pdval=new Date(*(value.pdval));
break;
}
return *this;
}
ANY::ANY(const ANY &value)
{
type=value.type;
switch(type)
{
case INT_TYPE:
ival=value.ival;
break;
case FLOAT_TYPE:
fval=value.fval;
break;
case CHAR_TYPE:
case VARCHAR_TYPE:
pcval=new CString(*(value.pcval));
break;
case TIME_TYPE:
ptval=new Time(*(value.ptval));
break;
case DATE_TYPE:
pdval=new Date(*(value.pdval));
break;
}
}
BOOL ANY::operator ==(const ANY &value)
{
ASSERT(type==value.type);
switch(type)
{
case INT_TYPE:
return (ival==value.ival);
case FLOAT_TYPE:
return ( (fabs(fval-value.fval))<0.0001);
case CHAR_TYPE:
case VARCHAR_TYPE:
return (*pcval==*(value.pcval));
case TIME_TYPE:
return (*ptval==*(value.ptval));
case DATE_TYPE:
return (*pdval==*(value.pdval));
}
}
BOOL ANY::operator < (const ANY &value)
{
ASSERT(type==value.type);
switch(type)
{
case INT_TYPE:
return (ival<value.ival);
case FLOAT_TYPE:
return (fval<value.fval);
case CHAR_TYPE:
case VARCHAR_TYPE:
return (*pcval<*(value.pcval));
case TIME_TYPE:
return (*ptval<*(value.ptval));
case DATE_TYPE:
return (*pdval<*(value.pdval));
}
}
BOOL ANY::operator > (const ANY &value)
{
ASSERT(type==value.type);
switch(type)
{
case INT_TYPE:
return (ival>value.ival);
case FLOAT_TYPE:
return (fval>value.fval);
case CHAR_TYPE:
case VARCHAR_TYPE:
return (*pcval>*(value.pcval));
case TIME_TYPE:
return (*ptval>*(value.ptval));
case DATE_TYPE:
return (*pdval>*(value.pdval));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -