본문 바로가기

전체150

string 클래스 디자인 표준 string 클래스 C++ 표준 라이브러리에는 string이라는 이름의 클래스가 정의되어 있다. 클래스의 이름이 의미하는것처럼 문자열 처리를 쉽게 할 수 있도록 도움을 주기 위해 정의된 클래스이다. 이 클래스를 사용하기 위해서는 헤더파일 string을 포함해야 한다. #include string 클래스 역시 이름공간 std내에 선언되어 있다. 따라서 이름공간에 대한 언을 미리 해야한다. using std::string; string 클래스의 특징; 1. 생성자, 소멸자, 복사 생성자 그리고 대입 연산자를 정의해야 한다. - string 클래스는 문자열을 저장하기 위한 용도의 클래스이다. 그런대 저장하고자 하는 문자열의 길이가 일정치 않다. 따라서 우리는 문자열을 저장할 배열을 생성자 내에서 동적 할.. 2009. 2. 16.
oop 프로젝트 8단계 중... 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.. 2009. 2. 12.
조건부 컴파일 #if #elif #else #endif 전처리 지시사 #if #elif #else #endif 는 컴파일러 (정확히 이야기하면 전처리기)에게 조건을 제시하는 경우에 사용된다. 사용되는 형식 -------------------------- #if CONDITION1 expression1 #elif CONDITION2 expression2 #else expression3 #endif --------------------------- 위 형식은 다음과 같은 내용을 컴파일러에게 요구하는 것이다. "CONDIONT1이 만족되면 expression1을 , CONDITION2가 만족되면 expression2를 이도 저도 아니면 expression3를 컴파일해라" if ~ else if 문장과 상당히 유사한 형태를 지니고 있음을 알 수 있다. 다만 위의 문.. 2009. 2. 11.
type redefinition 오류 해결법 C나 C++ 프로그램을 짜다보면 이런 저런 해더 파일을 인클루드 하게 되고 그러다보면 한번씩 'struct' type redefinition 이나 'class' type redefinition 어쩌구 하면서 에러가 발생할 때가 있다. 이런 경우 에러 내용 그대로 타입이 재정의 되었다는 얘기인데 이것은 일반적으로 아래 그림과 같은 경우에 발생한다. 그림에서 처럼 A.h 파일에 어떤 클래스나 타입을 정의해 놓았을 때 그 타입을 이용하기 위해 B.h 와 C.h에서 A.h를 인클루드하게 되고 D.c에서는 B.h와 C.h가 필요해서 둘을 인클루드하게 된다. 이런 경우 A.h 에서 정의한 타입을 D.c에서는 같은 내용을 두번 사용하게 되는 것이므로 이로 인해서 type redefinition이 발생하는 것이다. C.. 2009. 2. 11.