달력

12

« 2018/12 »

  •  
  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  
  •  

'클래스'에 해당되는 글 3

  1. 2010.03.26 상속의 객체 생성, 소멸 과정
  2. 2010.03.20 클래스의 활용
  3. 2010.03.19 class(클래스) ~ C++의 꽃 ~






상속의 객체 생성과 소멸 과정에 대해서 알아보자.

가장 중요한 것은
Inher_A 클래스를 상속 받은,
Inher_B 클래스를 생성할때,
A클래스의 생성자를 먼저 들린 후,
B클래스의 생성자를 수행한다는 것이다.
일단 소스를 보자.


소스에서도 알 수 있듯이 가장 중요한 것은
생성 순서는 최상위 클래스에서 단계별 하위 클래스로 이루어 지고.
소멸 순서는 취하위 클래스에서 단계별 상위 클래스로 이루어 진다는 것을 알 수 있다.
또한 기본적으로 상위 클래스의 생성자 선택은 멤버 이니셜라이저를 사용,
원하는 생성자로 이동이 가능하다.(아무것도 존재 하지 않는다면, 인자를 받지 않는 생성자를 수행.

'프로그래밍 > C++' 카테고리의 다른 글

IS-A, HAS-A 관계  (1) 2010.03.27
상속의 형태  (0) 2010.03.26
상속의 객체 생성, 소멸 과정  (0) 2010.03.26
상속의 개념  (0) 2010.03.24
public: private: 그리고 protected:  (0) 2010.03.24
explicit, mutable  (0) 2010.03.24
Posted by 안식의후크
2010.03.20 16:59

클래스의 활용 프로그래밍/C++2010.03.20 16:59







누가 그랬던가, C++로 제작이 가능한 모든것은 C로도 제작이 가능하다고,

물론 맞는 말이지만,

추후 그 프로그램을 수정할때의 시간은 확실히 차이가 난다고 생각한다.

클래스의 활용법에 대해서 알아보자.

클래스를 선언할 때에

public:
private:
protected: 가 존재 하지만

일반 적으로 public:에는 함수 선언을 많이 하고
private:에는 변수 선언을 많이 하게 된다.

왜 그럴까?

소스 코드를 보자.



자 그럼 단순히 원치 않은 값의 예방을 위해서만 클래스를 쓰는가?

그건 아니다.




처음 말 했듯이 C로써 제작이 불가능 하기 때문에 C++로 제작 하는건 절대 아니라고 본다.
단지 프로그래머라면(특히 게임프로그래머, 거기다 온라인)이라면 제작 보다 중요한건 유지 보수 라고 본다.
개인적으로 필자는 오래 사는 게임이 성공한 게임이라고 말 하고 싶은데,
사소한 밸런스 조정때에도 야근을 할 것인가.
클래스만 변경해 주고 조기 퇴근을 할지는 뭐,
본인 마음이겠지만
아직 나도 부족한게 많고 알아야 할것 투성이지만
C++이라는 언어는
오래 씹을 수록 더 깊은 맛이 나는 그런 느낌이랄까 ㅋ?

'프로그래밍 > C++' 카테고리의 다른 글

this 포인터  (0) 2010.03.21
객체 포인터 배열  (0) 2010.03.21
클래스의 활용  (0) 2010.03.20
class(클래스) ~ C++의 꽃 ~  (0) 2010.03.19
레퍼런스(Reference)  (0) 2010.03.18
new & delete  (0) 2010.03.17
Posted by 안식의후크
2010.03.19 00:42

class(클래스) ~ C++의 꽃 ~ 프로그래밍/C++2010.03.19 00:42







간단하게 보면 구조체 + 함수
라고 볼 수 있지만,

알면 알수록 정신세계를 안드로매다로 보내버리는 "아~ 그대의 이름은 클래스".

뭐 특징으로는

데이터 추상화네
캡슐화네
정보은닉, 다형성, 상속, 높은 재활용 등..

참 많지만 저런 이야기는 좀더 완벽하게 구사 할 수 있을때나 가능한거 같고,

바로 실전 코드로 알아 보자.



딱 봐도 구조체와 비슷,

시작은 미비하나 그 끝은 위대할 터이니,

클래스 내부에 무언가 선언(정의)할 떄에는 public과 protected, private 타입이 존재한다.

public은 공개
private는 자신만 공개
protacted는 특정한 상대에게만 공개

어떻게 설명해야 쉽게 설명할 수 있는가에 대한 답은 없는거 같고,

각각 특징과 어떻게 사용해야 하는지에 대해선 빠른 시일내에 다시 자세히 포스팅 하겠음. 일단 오늘은 사용법에 대해서만 알아 보도록 하자.

클래스 외부의 함수도 정의와 선언을 따로 할 수 있는데

외부 정의는 이 처럼 하면된다.


그리고 클래스는 생성자와 소멸자가 존재 하는데, 간략하게 한번 살펴 보자.


생성자의 가장 큰 능력은 클래스를 main에서 객체화 함과 동시에 초기화가 된다는 것이 가장 큰 능력이라고 볼 수 있다.
물론 여기엔 디폴트 매개변수도 가능! 좀더 다향한 재미를 맛볼 수 있는데, 직접 보면 이렇다.


당연한 이야기겠지만

이처럼 해주면 aaa::a 의 값은 10이 들어 갈 것이다.
사실 아직 public과 private, protacted에 대해서 설명하기전에 생성자를 말해놔서 당장은 왜 저렇게 하나...
싶기도 하겠지만 그것은 곧 알게 될테고(아마 뼈저리게...)

시작할 때 생성자가 있다면

끝날 때에는 소멸자가 존재한다.



결과 값은
100
0
이 나오게 된다.(main부분은 위 main 코드와 동일)



어찌 보면 당장은 생성자 보단 소멸자에 더 끌릴지도 모르겠다 메모리 삭제나 그외 종료하면서 해줘야 하는 일들을 소멸자에 넣으면 잊어 버리더라도 객채가 사라질때 소멸자에서 일을 해주기 때문이다.
시간이 늦어서(아 졸려) 뭔가 발로 쓴 느낌이 들지만. 큰 맥락은 다 잡은것 같다. 좀더 상세하고 재미잇고 세부적이고 짜증나고 분노가 치밀어 오르고 답답하고 열받는 이야기는 빠른 시일 내에 맑은 정신으로 다시 포스팅할 계획!(public과 그 친구들에 대해서도)

'프로그래밍 > C++' 카테고리의 다른 글

객체 포인터 배열  (0) 2010.03.21
클래스의 활용  (0) 2010.03.20
class(클래스) ~ C++의 꽃 ~  (0) 2010.03.19
레퍼런스(Reference)  (0) 2010.03.18
new & delete  (0) 2010.03.17
const 상수화  (0) 2010.03.17
Posted by 안식의후크