본문 바로가기

자료구조

전역 변수와 객체지향 프로그래밍

지금 까지 스택과 큐를 구현하면서 많은 전역 변수를 사용했다.

사실 프로그램에서 전역변수를 무절제하게 사용하는 것은 매우 좋지 않은 프로그래밍 습관이다.

전역변수는 함수들 사이에 관련성을 만들어 모듈화 된 프로그래밍을 방해할 수 있다. 즉, 어떤 함수가 오류 없이 동작하는가를 그 함수의 

코드만으로 검증할 수 있어야 하는데, 전역변수를 사용하면 그 함수의 코드만 봐서는 오류의 유무를 판단할 수 없고 관련된 다른 함수들을 

모두 확인해야 한다.

또 하나의 중요한 문제는 전역변수는 하나이기 때문에 스택이나 큐를 하나만 만들 수 있다는 것이다. 만약 스택이나 큐를 두 개 이상 사용하

고 싶다면 지금까지의 코드들은 문제가 잇다.

자료구조의 핵심 기능에 집중하기 위해 전역변수를 사용했다. 전역변수와 관련된 함수들은 C++이나 자바와 같은 객체지향언어의 클래스로 

쉽게 변경가능하다. 방법은 다음과 같다.

1. 자료구조를 하나의 클래스로 만든다.

2. 자료구조와 관련된 전역 변수는 클래스의 멤버 변수로 만든다.

3. 전역변수와 관련된 함수는 멤버 함수로 만든다.

전역 변수를 사용하는 지금까지의 코드를 확장하는 방법을 두가지로 생각해 볼 수 있다.

첫 번째 방법은 C++ 과 같은 객체지향 언어로 변환하는 것이고, 두 번째 방법은 C언어에서 구조체를 사용하여 전역 변수들을 구조체 안에 넣

어 사용하는 방법이다.



'자료구조' 카테고리의 다른 글

Hash Tale!  (0) 2020.03.14
연결리스트로 구현한 스택(Stack), 큐(Queue)  (0) 2019.02.27
덱(Deque)응용 미로 탐색 프로그램  (0) 2019.02.27
큐(Queue)응용 은행 시뮬레이션  (0) 2019.02.27
스택(Stack) - 괄호  (0) 2019.02.25