数据类的设计

**info.h

#pragma once

_MB_DATABASE_BEGIN

class MB_DATABASE_EXT CBeamSection:public CSection
{
public:
CBeamSection();
CBeamSection(const CBeamSection* pBeamSection);
virtual ~CBeamSection(void);
virtual CSection* Clone() const { return new CBeamSection(this);}
virtual void Copy(const CSection* pSection);
virtual BOOL Compare(const CSection* pSection) const;
CBeamSection & operator = (const CBeamSection &BeamSection){ Copy(&BeamSection);return *this; }
BOOL operator == (const CBeamSection &BeamSection) const { return Compare(&BeamSection); }
virtual BOOL Import(const CSection* pSection);
virtual void Serialize(CArchive& ar);
}
_MB_DATABASE_END

**info.cpp

_MB_DATABASE_BEGIN

CBeamSection::CBeamSection()
{
m_enType=BST_STANDARD;
m_enSectionType=ST_SPC001;
m_dGrade = 0;
m_dH = 1.5;
}
CBeamSection::CBeamSection(const CBeamSection* pBeamSection)
{
Copy(pBeamSection);
}
CBeamSection::~CBeamSection(void)
{
}

void CBeamSection::Copy(const CSection* pSection)
{
if (this == pSection) return;
Import(pSection);
CSection::Copy(pSection);
}

BOOL CBeamSection::Compare(const CSection* pSection) const
{
_ASSERTE_RT_BL(pSection);
if(!CSection::Compare(pSection)) return FALSE;
const CBeamSection* pBeamSection = dynamic_cast<const CBeamSection*>(pSection);
_ASSERTE_RT_BL(pBeamSection);

if(m_enType != pBeamSection->m_enType) return FALSE;
if(m_enSectionType != pBeamSection->m_enSectionType) return FALSE;
if(!Equal2Dbl(m_dGrade, pBeamSection->m_dGrade)) return FALSE;
if(!Equal2Dbl(m_dH, pBeamSection->m_dH)) return FALSE;

return TRUE;
}

BOOL CBeamSection::Import(const CSection* pSection)
{
const CBeamSection* pBeamSection = dynamic_cast<const CBeamSection*>(pSection);
_ASSERTE_RT_BL(pBeamSection);
m_enType = pBeamSection->m_enType;
m_bSingleSlope = pBeamSection->m_bSingleSlope;
m_dGrade = pBeamSection->m_dGrade;
m_dH = pBeamSection->m_dH;
return TRUE;
}

void CBeamSection::Serialize(CArchive& ar)
{
CSection::Serialize(ar);

if(ar.IsStoring())
{
_PRESAVE(_T("CBeamSection"))
{
_BEGINESAVE(DATABASE_VERSION1)
ar<< m_bSingleSlope;
ar<< m_dGrade;
ar<< m_dH;
MBasic::Serialize(ar,m_enType);
_ENDSAVE
}
_POSTSAVE
}
else
{
_PREOPEN(_T("CBeamSection"))
{
case DATABASE_VERSION1:
ar>> m_bSingleSlope;
ar>> m_dGrade;
ar>> m_dH;
MBasic::Serialize(ar,m_enType);
break;
}
_POSTOPEN
}
}
_MB_DATABASE_END

数据类的设计

时间: 2024-10-08 02:15:13

数据类的设计的相关文章

华容道03---关卡类的设计和数据读取

关卡类中需要有没关初始的地图数据,即每个角色的位置. 属性: ID: 所有RoleID:用到哪个Role写哪个,每个ID用','分开 对应RoleID的行列:读取的时候有一个Row数据和一个Col数据,将这两个数据合并为1个Pos数据. Level.h #ifndef _LEVEL_H_ #define _LEVEL_H_ #include "cocos2d.h" USING_NS_CC ; #include "tinyxml2/tinyxml2.h" using

类的设计

1001: 类的设计(1) Time Limit: 1 Sec  Memory Limit: 65535 MB   64bit IO Format: %lldSubmitted: 9  Accepted: 7[Submit][Status][Web Board] Description 设计clock类,成员数据包含时(hour)分(minute)秒(second),都是int类型,根据给定的main函数设计必要的成员函数. main函数已给定,提交时只需要提交main函数外的代码部分. int

表达式计算器类的设计4(面向对象的表达式计算器7)

概述 把符号表和变量表中的内容保存到一个文件中,通过IO文件流,来把符号表和变量表存储到文件中.在这之前需要弄明白什么是序列化和反序列化 对象的序列化 序列化:把对象转换为字节序列的过程 反序列化:把字节序列恢复为对象的过程 我们要把SymbolTable类的对象(符号表)和Storage类的对象(变量表)转换成字节序列保存到文件中,这时就可以设置Serializer类来完成这样的功能,同样的设置一个DeSerializer类来完成把保存到文件当中的字节序列恢复为对象的功能.这里要注意的是,所有

17.并发类容器设计

并发类容器设计 1.ConcurrentHashMap:代替散列普通的hashTable,添加了复合操作支持. private ConcurrentHashMap<String, Object> resultMap = new ConcurrentHashMap<String, Object>(); for (Map.Entry<String, Object> m : resultMap.entrySet()) { count += (Long) m.getValue(

表达式计算器类的设计2(表达式计算器5)

计算器的github下载地址:https://github.com/ljian1992/calculator 符号表,函数表,变量存储表 表达式计算器,需要支持变量和函数,而变量和函数都是些符号,因此设置一个SymbolTable类来存储这些符号.符号有两种,一种是变量,一种是函数,故在设置一个Storage类存储变量中的值,设置一个FunctionTable类来存储函数.由于这三中类存在着联系,现在在设置一个Calc类来管理它们. SymbolTable类,FunctionTable类,Sto

多终端数据同步机制设计(二)

多终端数据同步机制设计(二) Intro 如果您没有看上一篇文章,建议您先移步到这里查看第一部分 上一次主要解决了基本的数据增量同步的问题,但仍然存在一些问题. 可能存在的主要问题: 大数据量传输时,数据在传输过程出现部分丢失,数据不完整 超大数据量需要同步,导致响应时间过长而导致连接超时 针对以上可能出现的这两个问题,需要对数据进行校验并且数据量超过一定量时进行分批量传输, 本文将着手解决 数据校验 和 数据分批次传输 这两个问题. 同步流程概览 结合之前的同步流程,加上数据校验和分批次传输数

大众点评数据交换工具Wormhole设计与实现

1.1.1 数据交换工具Wormhole设计与实现 1.1.1.1 Wormhole整体设计 Wormhole是框架加插件的设计,各模块的设计思路: 1)  框架分为读管理器.双端缓冲队列和写管理器.读写管理器分别持有读写线程池,双端缓冲队列负责读写线程的数据交换. 2)  每种数据存储的插件分为或读写两种类型,每种类型又具体分为读或写.预和后处理.分片三种类型的插件.用不同接口来标识每种插件.扩展一种数据存储类型的方式是实现这些插件. 3)  插件的类型信息存在任务的配置文件中,以便解耦合,任

Python——类的设计

类的设计 这里讨论Python的OOP的设计问题,也就是如何使用类来对有用的对象进行建模.将编写Python中常用的OOP设计模式,例如,继承.组合.委托和工厂.另外介绍一些类设计的概念,例如伪私有属性.多继承等. ================================================================================ Python和OOP Python的OOP实现与Java类似,可以概括为三个概念: 1.[继承]继承是基于Python中的

一种面向电信行业基站数据的数据采集系统的设计与实现

一种面向电信行业基站数据的数据采集系统的设计与实现 1,项目简介 本论文来源于上海电信应急指挥平台.上海电信应急指挥平台主要是采集上海所有基站的一些与应急相关的实时数据,将这些数据做统计分析工作之后,在web浏览器上展示出来,便于电信上级的部门做决策.由于本人主要负责数据采集模块的架构.设计和开发工作.对这个领域有点体会,本篇文章主要总结这个领域的一些实践工作. 由于在数据采集的领域主要以使用WebService的方式(Apache CXF)和使用ftp两种方式来采集电信的基站数据,本篇文章就以