8단계중
객체의 포인터를 저장하기 위한 용도로 사용할 수 있는 클래스의 선언부이다. 일명 "컨테이너(Continer)클래스" 라고 부른다. 달리 표현하면 "저장소 클래스" 정도가 되겠다(배열 클래스와는 성격이 조금 다르다.)
#ifdef _CONTAINER_H_
#define _CONTAINER_H_
#include "Account.h"
typedef Account* Element;
class Container {
private: Element* arr;
int length;
int aIndex;
public: Container(int len=50);
~container();
void Insert(Element datea);
Element Remove(int idx);
Element GetItem(int idx);
int GetElement() {return aIndex;};
};
Container 클래스의 기능은 객체(객체 포인터)의 저장/삭제 및 참조에 대한 것을 추상화시키는 것이다. 객체를 저장하고자 하는 프로그래머는 누구나 Container 클래스를 사용할 수 있도록 선언되었다. 내부적으로 어떻게 저장이 되고 삭제가 되는지 알 필요도 없다. 다만 다음과 같은사항만 알고 있으면 쉽게 사용이 가능하다.
-객체를 저장할때에는 Insert 함수를 사용한다. 순차적으로 저장이된다.
-n번째(0이 첫번째다) 위치에 저장되어 있는 객체를 소멸할 때는 Remove 함수를 사용한다. Remove 함수 는 삭제된 객체의 포인터를 반환한다.
-n번째(0이 첫 번째다) 위치에 저장된 객체를 참조할 때는 Getitem 함수를 사용한다.
-저장된 객체의 총 개수를 확인하고 싶을 때에는 GetEiemSum 함수를 호출한다.
------ 이러한 유형의 클래스를 사용했다고 가정해 보자. 그렇다면 다음과 같은 장점이 생긴다.
" 객체를 저장하는 방식이 바뀐다고 해도, Container 클래스에만 변경이 생긴다. 다른 클래스들은 전혀 바뀔 필요가 없다. "
그렇다.! 배열의 형태로 객체를 저장하는 구조에서 리스트 형태로 객체의 저장 방식을 변경한다고 해도, Container 클래스 이외의 영역은 절대 변경되지 않는다. 즉 !
확장성이 좋아지는 것이다.
객체의 포인터를 저장하기 위한 용도로 사용할 수 있는 클래스의 선언부이다. 일명 "컨테이너(Continer)클래스" 라고 부른다. 달리 표현하면 "저장소 클래스" 정도가 되겠다(배열 클래스와는 성격이 조금 다르다.)
#ifdef _CONTAINER_H_
#define _CONTAINER_H_
#include "Account.h"
typedef Account* Element;
class Container {
private: Element* arr;
int length;
int aIndex;
public: Container(int len=50);
~container();
void Insert(Element datea);
Element Remove(int idx);
Element GetItem(int idx);
int GetElement() {return aIndex;};
};
Container 클래스의 기능은 객체(객체 포인터)의 저장/삭제 및 참조에 대한 것을 추상화시키는 것이다. 객체를 저장하고자 하는 프로그래머는 누구나 Container 클래스를 사용할 수 있도록 선언되었다. 내부적으로 어떻게 저장이 되고 삭제가 되는지 알 필요도 없다. 다만 다음과 같은사항만 알고 있으면 쉽게 사용이 가능하다.
-객체를 저장할때에는 Insert 함수를 사용한다. 순차적으로 저장이된다.
-n번째(0이 첫번째다) 위치에 저장되어 있는 객체를 소멸할 때는 Remove 함수를 사용한다. Remove 함수 는 삭제된 객체의 포인터를 반환한다.
-n번째(0이 첫 번째다) 위치에 저장된 객체를 참조할 때는 Getitem 함수를 사용한다.
-저장된 객체의 총 개수를 확인하고 싶을 때에는 GetEiemSum 함수를 호출한다.
------ 이러한 유형의 클래스를 사용했다고 가정해 보자. 그렇다면 다음과 같은 장점이 생긴다.
" 객체를 저장하는 방식이 바뀐다고 해도, Container 클래스에만 변경이 생긴다. 다른 클래스들은 전혀 바뀔 필요가 없다. "
그렇다.! 배열의 형태로 객체를 저장하는 구조에서 리스트 형태로 객체의 저장 방식을 변경한다고 해도, Container 클래스 이외의 영역은 절대 변경되지 않는다. 즉 !
확장성이 좋아지는 것이다.
'C++' 카테고리의 다른 글
use of class template requires template argument list ->컴파일 에러 (0) | 2009.02.18 |
---|---|
클래스 템플릿! (0) | 2009.02.18 |
함수 템플릿!!! (0) | 2009.02.17 |
임시 객체에 대하여.... (0) | 2009.02.16 |
string 클래스 디자인 (0) | 2009.02.16 |
배열의 인덱스 연산자 오버로딩 (0) | 2009.02.10 |
cout / cin / endl 에 대하여... (0) | 2009.02.10 |
단항 연산자의 오버로딩 (0) | 2009.02.09 |
연산자 오버로딩 (0) | 2009.02.06 |
클래스 멤버함수는 // virtual의 원리 // 다중상속 * 다시 봐야될듯.ㅠ (0) | 2009.02.05 |