📄 bookclass.cpp
字号:
// 静态模型
#include "BookClass.h"
namespace Library
{
using std::string;
/// <summary>BookClass的默认构造函数</summary>
/// <returns></returns>
/// <exception>不抛出异常</exception>
BookClass::BookClass()
// :BookObject()
{}
/// <summary>使用一个uuid创建BookClass</summary>
/// <param name="id">[IN]用字符串表示的一个全球唯一标识符</param>
/// <remarks></remarks>
BookClass::BookClass(const std::string& id)
:BookObject(id)
{}
/// <summary>拷贝构造函数</summary>
/// <param name="r">[In]右操作数</param>
/// <remarks></remarks>
BookClass::BookClass(const BookClass& r)
:BookObject(r.id),
name(r.name),descripton(r.descripton)
{}
/// <summary>使用类别名和描述构造BookClass</summary>
/// <param name="className">[IN]类别名</param>
/// <param name="desc">[IN]类别的描述</param>
/// <remarks></remarks>
BookClass::BookClass(const std::string& className, const std::string& desc)
:name(className), descripton(desc)
{ }
/// <summary>赋值构造函数</summary>
/// <param name="r">[IN]右操作数</param>
/// <returns>返回当前对象的引用</returns>
/// <remarks></remarks>
BookClass& BookClass::operator = (const BookClass& r)
{
if(this == &r)
{
return *this;
}
this->id = r.id;
this->name = r.name;
this->descripton = r.descripton;
return *this;
}
/// <summary>设置种类名</summary>
/// <param name="className">[IN]种类名</param>
/// <remarks></remarks>
void BookClass::SetName(const std::string& className)
{
this->name = className;
}
/// <summary>设置种类的描述</summary>
/// <param name="desc">[IN]种类的描述</param>
/// <remarks></remarks>
void BookClass::SetDescription(const std::string& desc)
{
this->descripton = desc;
}
/// <summary>从一个XML节点加载BookClass的信息</summary>
/// <param name="classElem">[IN]一个XML节点的指针, 这个节点应当拥有一定的结构(<BookClass></BookClass>)。</param>
/// <returns> 成功返回:0 失败返回: 其它值
/// </returns>
/// <exception cref="KException">没有找到图书种类的id.缺乏必须的信息.</exception>
/// <remarks>classElem指针为空时, 函数返回 1 (失败),但是BookClass的所有属性均没有变化。
/// 如果classElem没有(<BookClass></BookClass>)结构, 函数 1 (失败),但是classElem的所有属性均没有变化.
/// 如果classElem有(<BookClass></BookClass>)结构可以不提供构造一个classElem的所有信息,但是必须提供classElem::id信息,否则函数执行失败, 抛出异常.
/// </remarks>
int BookClass::LoadFromXml(TiXmlElement* classElem)
{
if(NULL == classElem)
return 1;
if(string(classElem->Value()) != "BookClass")
return 1;
const char* pAttu = NULL;
pAttu = classElem->Attribute("id");
if(NULL != pAttu)
this->id = pAttu;
else
{
throw KException("没有找到图书种类的id.缺乏必须的信息.");
}
pAttu = classElem->Attribute("name");
if(NULL != pAttu)
this->name = pAttu;
pAttu = classElem->Attribute("desc");
if(NULL != pAttu)
this->descripton = pAttu;
return 0;
}
/// <summary>把BookClass的信息保存到一个XML节点</summary>
/// <param name="classElem">[IN]一个XML节点的指针,将清空classElem的所有内容, 然后根据信息的内容,重新构造节点的结构.不能为空</param>
/// <returns> 成功返回:0 失败返回: 其它值
/// </returns>
/// <remarks>classElem不能为NULL</remarks>
int BookClass::SaveToXml(TiXmlElement* classElem) const
{
if(NULL == classElem)
return 1;
// 清空
//DONE:13>> 重大问题: 修改分类的信息又错误。
//classElem->Clear();
// 节点名
classElem->SetValue("BookClass");
// 设置attribute
classElem->SetAttribute("id", this->id);
classElem->SetAttribute("name", this->name);
classElem->SetAttribute("desc", this->descripton);
return 0;
}
} // Library
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -