`
isiqi
  • 浏览: 16560651 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

设计模式中的相关基础类文件

阅读更多

这个文件是设计模式中可能要用到的数据结构,将它根据需要补全,在后绪的学习中将会根据需要慢慢补,不断更新中。

//BasicClass.h:interfacefortheBasicClassclass.
//
/**///////////////////////////////////////////////////////////////////////

#if!defined(AFX_BASICCLASS_H__459C19CB_0047_4A50_855E_B7FDCFC6F3B0__INCLUDED_)
#defineAFX_BASICCLASS_H__459C19CB_0047_4A50_855E_B7FDCFC6F3B0__INCLUDED_

#if_MSC_VER>1000
#pragmaonce
#endif//_MSC_VER>1000
//
#include<iostream>
/**//*usingnamespacestd::;*/
usingstd::cout;
usingstd::ostream;
usingstd::istream;
//#include<iostream.h>
//std::list<int>

#defineDEFAULT_LIST_CAPACITY1000
template
<classT>classList;

template
<classT>classListNode//T便是一个指针
...{
public:
friend
classList<T>;
ListNode()
...{_data=NULL;_next=NULL;}

ListNode(
constT&item);
ListNode
&operator=(constListNode&);
T_data;
ListNode
<T>*_next;

}
;



template
<classT>classList//T便是一个指针
...{
public:
List(
longsize=DEFAULT_LIST_CAPACITY)...{_last=NULL;_first=NULL,_current=NULL;_size=0;}
List(List
&list);
~List()...{}
List
&operator=(constList&);

longCount()const
...{
return_size;
}

T
&Get(longindex)const
...{
ListNode
<T>*p=_first;
for(inti=0;i<index;i++)
...{
p
=p->_next;
}

returnp->_data;
}

T
&First()const
...{
return_first->_data;
}

ListNode
<T>*FirstPoint()
...{
return_first;
}

T
&Last()const
...{
return_last->_data;
}

boolIncludes(constT&data)const
...{
ListNode
<T>*p=_first;
while(p!=NULL)
...{
if(data==p->_data)
...{
returntrue;
}

}


returnfalse;
}


voidAppend(constT&data)
...{
ListNode
<T>*p=newListNode<T>;

if(_current==NULL)
...{
_current
=p;
_current
->_data=data;
if(_first==NULL)
...{//空链表
_first=_last=_current;
}

}

else
...{
p
->_next=_current->_next;
_current
->_next=p;
_current
=_current->_next;//将当前指针指向插入的节点

if(_current->_next==NULL)
...{//如果是在链尾加,
_last=_current;
}

}

}

//voidPrepend(constT&data)
//{
//ListNode<T>*p=newListNode<T>;
//
//if(_current==NULL)
//{
//
//}
//}


voidRemove(constT&data)
...{

}

voidRemoveLast();
voidRemoveFirst();
voidRemoveAll();

T
&Top()const;
voidPush(constT&);
T
&Pop();

ListNode
<T>*_first;
ListNode
<T>*_last;
ListNode
<T>*_current;
int_size;
}
;



template
<classT>
classIterator
...{
friend
classList<T>;
public:
virtualvoidFirst()=0;
virtualvoidNext()=0;
virtualboolIsDone()const=0;
virtualTCurrentItem()const=0;
}
;

template
<classT>//ListNode<equment*>*
classListIterator:publicIterator<T>
...{
public:
T_ptr;
T_first;

ListIterator()
...{_ptr=0;_first=0;}
ListIterator(Talist)
...{_ptr=alist;_first=alist;}

//ListIterator(constListIterator<T>aList&);

virtualvoidFirst()...{_ptr=_first;}
virtualvoidNext()...{_ptr=_ptr->_next;}
virtualboolIsDone()const...{return_ptr!=NULL;}

virtualTCurrentItem()const
...{
return_ptr;
}

}
;


typedef
floatCoord;
classPoint...{
public:
staticconstPointZero;

Point(Coordx
=0.0,Coordy=0.0);

CoordX()
const;//得到x值
CoordY()const;
voidX(Coordx);//设置x值
voidY(Coordy);

Point
operator+(constPoint&);
Point
operator-(constPoint&);
Point
operator*(constPoint&);
Point
operator/(constPoint&);

voidoperator+=(constPoint&);
voidoperator-=(constPoint&);
voidoperator*=(constPoint&);
voidoperator/=(constPoint&);

booloperator==(constPoint&);
booloperator!=(constPoint&);

friendostream
&operator<<(ostream&,constPoint&);
friendistream
&operator>>(istream&,Point&);
private:
Coordm_x;
Coordm_y;
}
;

classRect
http://images.csdn.net/syntaxhighli
分享到:
评论

相关推荐

    设计模式:可复用面向对象软件的基础.zip

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。这些模式经过时间的考验,被广泛应用于各种面向对象的软件开发中,以提高代码的可读性、可维护性和可复用性。本教程旨在深入讲解...

    软件设计模式期末作业

    这些文件可以帮助我们深入理解如何在实际项目中应用这些设计模式,如何通过它们提高代码的可读性和可维护性,以及如何应对系统需求变化带来的挑战。 设计模式的学习不仅仅是掌握理论,更重要的是将其应用于实际项目...

    设计模式-华工课件 设计模式

    设计模式的起源可以追溯到20世纪90年代,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大师共同编著的《设计模式:可复用面向对象软件的基础》一书中提出。他们总结了23种经典的设计模式,这些...

    设计模式期末试题下载

    根据给定文件的信息,我们可以提炼出关于设计模式的相关知识点,包括设计模式的概念、目标、特点以及常见的设计模式分类和具体应用。以下是对这些知识点的详细解释: ### 设计模式概念 1. **定义**:设计模式是...

    常见的十种设计模式Java工程文件

    在软件开发领域,设计模式是解决常见问题的模板或最佳实践,它们被广泛应用于构建可扩展、可维护的面向对象...通过学习这些Java实现的工程文件,开发者可以深入理解设计模式的实际应用场景,并在实际项目中灵活应用。

    漫谈设计模式-从面向对象开始

    在本文档中,我们将深入探讨设计模式及其在面向对象编程中的应用。设计模式是软件工程中的一套被广泛认可的最佳实践,它们是一些在特定上下文中反复出现的问题的解决方案。了解和应用设计模式可以帮助开发者写出更加...

    asp.net基础类

    这个压缩包文件中的"asp.net基础类"显然包含了用于构建高效、可靠Web应用的一些关键类库。接下来,我们将深入探讨其中涉及的几个核心知识点。 首先,SqlHelper基类是数据库操作中的一个常见设计模式,用于封装ADO...

    观察者模式和设计模式

    观察者模式和设计模式是软件工程中至关重要的概念,它们为构建可维护、可扩展的系统提供了基础。本文将深入探讨这两个设计模式以及与之相关的Java实现。 首先,观察者模式(Observer Pattern)是一种行为设计模式,...

    东北大学设计模式实验1

    在东北大学设计模式实验1中,学生将深入学习软件工程中的一个重要概念——设计模式。设计模式是经过长期实践,被广泛认可的解决特定问题、在软件设计中反复出现的模板,它代表了最佳的设计实践。这个实验的目标是...

    Head First设计模式和HeadFirst in java 源码以及23种设计模式关系图

    23种经典设计模式是GOF(GoF, Gamma, Helm, Johnson, Vlissides)在《设计模式:可复用面向对象软件的基础》一书中提出的,这些模式可以分为三大类:创建型、结构型和行为型。创建型模式关注对象的创建,如单例模式...

    设计模式之创建型模式实验.docx

    在本实验中,我们将探讨五种常见的创建型设计模式:简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式,并在Java环境中实现这些模式。 1. **简单工厂模式**: - **概念**:简单工厂模式通过一个...

    java 基础含设计模式

    本资料包“java基础含设计模式”专注于Java基础知识的学习,特别强调了设计模式和文件操作这两个重要主题。 首先,让我们深入探讨Java的基础知识。Java的核心特性包括类和对象、封装、继承和多态,这些都是面向对象...

    C#基础类 常用类 常用方法源码 .NET 工具类 源码

    通过研究这个压缩包中的源码,你可以了解到C#类的设计模式、异常处理、内存管理、线程同步等核心概念。同时,这也有助于你掌握如何编写高效、可维护的C#代码,以及如何利用.NET框架提供的丰富资源。源码学习是提升...

    软件体系结构设计模式作业

    在IT行业中,软件体系结构设计模式是开发高质量、可维护和可扩展的软件系统的关键要素。设计模式是一种在特定上下文中解决常见问题的最佳实践,它为软件设计提供了可重用的解决方案。本作业将深入探讨软件体系结构...

    南华大学软件设计模式作业

    在南华大学的软件设计模式课程中,学生们通过一系列的实验和作业来深入理解和应用...通过这种方式,他们不仅能掌握设计模式的基本概念,还能学会如何在实际开发中有效地运用这些模式,为未来的职业生涯打下坚实基础。

    二十三种设计模式【PDF版】

    实际上,GoF 的设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用 和智慧,让你能够真正掌握接口或抽象类的应用,从而在原来的 Java 语言基础上跃进一步,更重要的是...

    工厂设计模式代码

    工厂设计模式是软件工程中广泛使用的一种创建型设计模式,它的主要目的是为了隔离对象的创建过程,使得客户端代码不直接创建对象,而是通过一个专门的工厂类来负责对象的实例化。这种模式使得系统在面对产品扩展时...

    设计模式作业

    设计模式是软件工程中的一种最佳实践,用于解决常见的设计问题,提升代码的可复用性、可维护性和可扩展性。在C++编程中,设计模式的应用尤其重要,因为它可以帮助开发者遵循面向对象的原则,如单一职责原则、开放...

    设计模式精编版

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。...通过阅读“设计模式精编版”中的CHM文件,你可以系统地学习和掌握这些设计模式,从而在实际项目开发中游刃有余。

Global site tag (gtag.js) - Google Analytics