当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

一个简单的链表模版类的实现[VC/C++编程]

赞助商链接



  本文“一个简单的链表模版类的实现[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

这是翻阅《数据构造、算法与利用——C++语言描写》 以及在网上得到的一些资料后写出来的.起因是在项目中要用到一个链表,但我做一个简单的链表在C++顶用的时刻跟C差别很多,比方赋值运算(编译器说要做操作符重载,大概考贝构造函数,C++中把构造当作一个类来看了,详见相关介绍的文档或书籍).后来一想干脆做个template趁便学习一下,一举两得.

几个问题:

CListData和CNode的函数均为内联函数(inline),因为目前的编译器仍不支持别离编译.按《Thinking in C++》一书第16章中的注释是,模版类在定义的时刻并没有对内存举行分配置,而是到实例化的情形下才分配内存,因此可以把声明和定义都写在头文件(详见原文).

因此,假如将两个文件别离则在衔接时报错LNK2001.(这问题把我搞得痛楚了好一阵)

在网上及书上的例程中普通是以一个int做为例子,这使得在我们利用的时刻很不便利,分外是在不完好理解template的时刻.在这里我以一个类(CNodeInfo)作一个节点范例的例子.

代码:

class CNodeInfo
{
private:
  int      m_Count;//Counter or call it PKEY:)
  CString    m_strFileName;//for Store filename
  DWORD    m_dwFileLen;//for store file length
  BOOL    m_bStatus;//Transfers status tag;
public:
  CNodeInfo();
  ~CNodeInfo();
  void SetStatus(BOOL bStatus = FALSE);
  BOOL GetStatus();
  void SetFileLen(DWORD len);
  DWORD GetFileLen();
  void SetFileName(CString str);
  CString GetFileName();
};
//private 为数大家可以理解成构造中的元素如:
typedef struct _FILESTRUCT_
{
  int count;
  CString strFileName;
  DWORD dwFIleLen
  BOOL  bStatus;
}FILESTRUCTURE.

(假如你想把它改得更通用可以把CString换成char 大概string,其他地方再作呼应改正,把BOOL 改成 bool大概用typedef一下).

Public:是成员函数就不细描写了.对比简单了.代码中注释对比具体,我在这就不写得很细了,把一些我自己认为不简单弄懂得的地方写一下就是了(但愿有人能读懂我的中式英文,嘿嘿)

参考资料:

《数据构造、算法与利用——C++语言描写》《Thinking in C++》以及网络上相关资料.

本文配套源码


  以上是“一个简单的链表模版类的实现[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • Access 2000教程:1.5 一个简单的数据库
  • 一个简单的服务器和客户机程序
  • <b>操纵Java实现一个简单的递归算法的实例</b>
  • 一个简单的Timer Service
  • 用JBuilder7开辟一个简单的J2EE操纵
  • <b>一个简单的记事本代码(二)</b>
  • 一个简单的记事本代码(三)
  • <b>一个简单的记事本代码(一)</b>
  • [JAVA100例]050、一个简单的Web服务器
  • 一个简单的JAVA日历程序
  • 一个简单的CheckBox Tree实现
  • 用java实现一个简单的序列化的例子
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .