template class list

2022. 12. 9. 12:52개인공부/C++

c++ 내의 list 기능을 직접 템플릿 클래스를 이용하여 구현해 보았다.

 

C++ 에서는 struct 와 clss 는 기본적인 접근자 지정자가 각각 public,private라는 차이점이 있지만 

작동방식이 거의 일치한다고 한다. 그러므로 나는 비교적 간단한 구조는 struct 를 이용하고 복잡한 구조는

class 로 구현하였다.

 

먼저 탬플릿은 클래스에 사용자가 원하는 자료형을 넣어서 클래스를 생성해준다.

그러므로 각각의 원하는 자료형의 클래스를 만들지 않아도 탬플릿을 만들면 어떠한 자료형이라도

그에 맞는 클래스를 손쉽게 생성할 수 있다. 그러므로 탬플릿의 경우 자료형에 따라 생성하므로

헤더파일에 구현하는데 헤더파일에 구성해야 자신이 지정한 자료형을 확인하고 클래스를 생성할 수 있다.

 

CList 클래스의 경우에는 CNode의 시작과 끝의 주소를 가지며 iCount의 경우에는 리스트의 길이를 표시하였다.

Putback 함수는 리스트 마지막에 추가하며 PutFront의 경우에는 리스트 가장 첫번째에 인덱스값을 삽입한다.

 

CNode는 인자로  index값과  다음과 이전 노드의 주소를 가진다.

생성자 오버로딩을 이용하여 위의 Put 종류의 함수를 구현할때 도움을 주기위해서 구현하였다.

생성자 사용방법은

CNode()로 생성자를 정의하고 전달받을 인자를 ()에 대입해주어 :  이후에 값을 대입하고 구현하였다.

그후에는 Put함수들을 구현하였다. 디버깅과정에서  처음에 iCount==0 일때의 조건을

설정하지 않아서 버그를 발생시켰다. 이후에 조건을 수정해서 완성하였다.

 

마지막으로는 CList 의 생성자와 종결자를 만들어 주었다.

다음에는 iterator 기능도 구현해볼 예정이다.

'개인공부 > C++' 카테고리의 다른 글

iterator (list)  (0) 2022.12.11
iterator  (0) 2022.12.10
참조자 &  (0) 2022.12.08
class(3)  (0) 2022.12.07
class(2)  (0) 2022.12.06