컴퓨터 썸네일형 리스트형 3-4 멤버 함수의 외부 정의 클래스 내에 모든 멤버 함수의 정의를 집어넣는 다면 클래스의 부피가 너무 커진다. 멤버 함수를 클래스 외부에 정의하기 #include using std::cout; using std::endl; const int OPEN=1; const int CLOSE=2; class Door { private: int state; public: void Open(); void Close(); void ShowState(); }; void Door::Open() { state = OPEN; } void Door::Close() { state = CLOSE; } void Door::ShowState() { cout 3-3. 클래스 멤버의 접근 제어 클래스 안에 선언되어 있는 멤버의 접근 허용 범위를 나타내는 키워드는 public, protected, private 세 가지가 있다. 클래스의 내부 접근과 외부 접근 #include using std::cout; using std::endl; class Counter { public: int val; void Increment(void) { val++; //내부 접근 } }; int main(void) { Counter cnt; cnt.val = 0; //외부 접근 cnt.Increment(); //외부 접근 cout 3-2. 클래스와 객체 데이터 추상화(Data Abstraction) 현실세계의 사물을 데이터적인 측면과 기능적 측면을 통해서 정의하는 것이 데이터 추상화이다. 여기서 데이터라는 용어는 사물의 데이터적인 측면(변수)과 기능적인 측면(함수)을 동시에 일컫는 것이다. 클래스(Class) 추상화된 데이터(데이터적 측면 + 기능적 측면)를 가지고 프로그램 코드로 옮겨 자료형을 정의하게 되는데 이때 사용되는 것이 클래스이다. 이 행위를 "클래스 화한다"라고 표현한다. 객체(Object) 클래스를 정의한다는 것은 자료형을 하나 정의하는 것이다. 자료형을 기반으로 변수를 생성하는데 클래스를 이용해서 정의된 자료형의 변수는 객체(object)라는 표현을 쓴다. 그리고 클래스를 기반으로 객체를 생성하는 것을 가리켜 "인스턴스화(instanti.. C 구조체 I. 구조체 #include struct person { char name[16]; //한글: 3n+1, 영어: n+1 int age; }; int main() { struct person = man{"LEE", 39}; //구조체 변수 초기화 struct person* pMan; //구조체 포인터 선언 pMan = &man; //구조체 포인터에 주소 할당 //구조체 변수를 이용한 출력 printf("name: %s\n", man.name); printf("age: %d\n", man.age); //구조체 포인터를 이용한 출력1 printf("name: %s\n", (*pMan).name); printf("age: %d\n", (*pMan).age); //구조체 포인터를 이용한 출력2 printf("na.. 2-7. new & delete new와 delete 연산자의 기본적 기능 메모리를 동적으로 할당 및 소멸하기 위해서 C에서 malloc과 free함수를 썼다면 C++ 에선 new와 delete 키워드가 이 두 함수를 대신한다. int * val = new int; //int형 테이터 1개 저장을 위한 메모리 할당 int * arr = new int[size]; //길이가 size인 int형 배열을 위한 메모리 할당 delete val; //val이 가리키는 메모리 반환 delete []arr; //arr이 가리키는 배열 반환 1: int형 데이터 하나를 저장할 수 있는 메모리 공간을 동적할당 하라는 선언이다. 힙 영역에 4byte 메모리 공간이 할당될 것이고, 할당된 메모리 공간의 주소 값 반환이 이루어진다. C의 malloc 함수는.. 이전 1 ··· 74 75 76 77 78 79 80 ··· 88 다음