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

📄 any.cpp

📁 有计算机图形学、图像处理、dbms、sniffer、中游俄罗斯外挂、othello、遗传算法、舌苔分析等程序。
💻 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 + -