조회 수 1956 추천 수 3 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

체계적인 C++ 강좌를 올리고자 하는 사람입니다...


그런데... 솔직히 어느 정도의 수준으로 C++ 강좌를 올려야 할지 모르겠군요. 순수 프로그래밍을 배우자기 보다는, 게임을 만들기 위한것이니... 다이렉트X 나 XNA Studio를 다뤄봐야 하는지... 고민되네요^^...


 


사실, RPG 만들기는 일반적인 RPG 게임을 손쉽게 만들 수 있다는 장점이 있지만, 진보적이고, 전문적이며, 고급의 게임을


만들기에는 무리가 있으며 많이 부족하지요. 진정으로 게임을 제대로 만들고자 한다면, 역시 프로그래밍을 익혀야 겠지요.


 


저는, 이곳에 강좌를 첨 올려보므로... 제가 아는 지식을 슬쩍 한번 시험삼아 올려보고자 합니다...


반응을 봐 가면서 방향을 결정 해 보도록 하지요. 아래쪽부터는, 편의를 위해 존대말을 사용하지 않습니다.


양해 바랍니다.


 


기본 생성자와 소멸자


 


생성자와 소멸자를 선언하지 않으면, 컴파일러가 그 일을 대신 처리한다. 기본 생성자와 소멸자는 인수를 가지지 않으며, 아무 일도 하지 않는다.


 


아무것도 하지 않는 생성자가 무엇이 좋은가? 부분적으로는 양식의 문제이다. 모든 개체는 만들어지고, 파괴되어야 하고, 이런 아무것도 하지 않는 함수가 제때에 호출되어야 한다. 하지만 다음과 같은 매개 변수를 전달하지 않고 개체를 선언하려면,


 


    Cat Rags; // Rags는 매개 변수가 없다


 


다음과 같이 생성자를 만들어야 한다.


 


    Cat();


 


클래스의 개체를 선언할 경우 생성자가 호출된다. Cat 생성자가 두 개의 매개 변수를 가지면, 다음과 같이 작성하여 Cat 개체를 정의해야 한다.


 


    Cat Frisky(5, 7);


 


생성자가 하나의 매개 변수를 가지면 다음과 같이 작성한다.


 


    Cat Frisky(3);


 


생성자가 전혀 매개 변수를 가지지 않는 경우, 괄호를 빼고 적어야 한다.


 


    Cat Frisky;


 


이것은 모든 함수가 매개 변수를 가지지 않을 경우에라도 괄호를 가져야만 한다는 규칙에 대한 예외이다.


이런 이유 때문에 다음과 같이 적을 수 있다.


   


    Cat Frisky;


 


이것은 기본 생성자를 호출한다. 매개 변수가 없으므로 괄호를 생략한 것이다. 반드시 컴파일러가 제공하는 기본 생성자를 사용할 필요는 없다. 항상 자유롭게 매개 변수가 없는 자신의 생성자를 만들 수 있다. 매개 변수를 가지지 않는 생성자라 해도 개체를 초기화하거나 다른일을 하는 함수 본체를 가질 수 있다.


 


양식과 관련된 문제인데, 생성자를 선언할 경우, 소멸자가 아무일도 하지 않더라도 소멸자를 선언 했는지 확인하도록 한다.


기본 소멸자가 제대로 잘 동작하겠지만, 자신의 것을 선언하는 것이 그리 힘들지는 않을 것이다.


 


그렇게 하면 고드가 좀더 깔끔해 보인다.


 


다음은 생성자와 소멸자를 사용한 예이다.


 


 


*** 예제


#include <iostream.h>


 


Class Cat


{


  public:


    Cat(int initialAge);


    ~Cat();


    int GetAge();


    void SetAge(int age);


    void Meow();


  private:


    int itsAge();


};


 


Cat::Cat(int initialAge)


{


  itsAge = initialAge;


}


 


 


Cat::~Cat()


{


}


 


int Cat::GetAge()


{


  return itsAge;


}


 


void Cat::SetAge(int age)


{


  itsAge = age;


}


 


void Cat::Meow()


{


  cout << "Meow.n";


}


 


int main()


{


  Cat Frisky(5);


  Frisky.Meow();


  cout << "Frisky is a cat who is ";


  cout << Frisky.GetAge() << " years oldn";


  Frisky.Meow();


  Frisky.SetAge(7);


  cout << "Now Frisky is ";


  cout << Frisky.GetAge() << " years oldn";


  return 0;


}


 


 


*** 결과:


Meow.


Frisky is a cat who is 5 years old.


Meow.


Now Frisky is 7 years old.


 


흠... 일단 클래스의 생성자와 소멸자에 관한 내용을 올려봅니다...


데이터 멤버나 메소드에 관한 설명도 없이 이 내용만 달랑 올리기는 그렇지만...


시험삼아 올려 봅니다.


 


읽으신 분은 댓글을 부탁드립니다.

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
884 언어/기타 액션알피지 왕초보도 따라하는.. -스킬만들기- LifeⓘⓢGood 2005.09.08 1789
883 언어/기타 귀찮아‡님의 자동세이브 스크립트의 한글화 J.Clifford 2007.08.20 1771
882 RPG Maker 초보의 로그인박스로 웹사이트에서 인증하는 방법 설명 챔피온 2005.05.28 1770
881 언어/기타 MFC 색상표 file 피군 2006.09.12 1770
880 RPG Maker 액션 게임을 만들어 보자! 『연금술사』 2006.09.27 1766
879 언어/기타 [DX/VB] DirectDraw? 별거 아냐! (1) DirectDraw객체의 생성과 표면의 생성 악희 2007.07.29 1757
878 RPG Maker 대화창을 화사하게 장식해볼까요? 장식은 정말 쉽죠? 노친네 2006.08.17 1748
877 언어/기타 액알 의견들을 모집합니다. 비밀소년 2006.08.03 1746
876 RPG Maker 웨이브 파일 용량 줄이는 법 file 아마란스 2005.07.01 1741
875 언어/기타 게이지바 만들기 블리쳐 2005.06.24 1740
874 RPG Maker [스크립트 문제]RPGXP에서 타일셋의 우선순위 문제 해결 file Novelist 2007.07.19 1739
873 RPG Maker 게임제작 시작하시는분들을위한 강좌!(외부링크) diget 2013.09.23 1738
872 언어/기타 [DX&C++] 화면에 글씨를 써볼까요. 10 Zeprod 2007.05.22 1735
871 언어/기타 플레이어가 자기의 이름을 정한다 . [영어] file Norid 2005.05.21 1718
870 언어/기타 ARM 어셈블리 강좌 #0: 무념 원스타 2006.08.17 1718
869 RPG Maker 아주~~아주~~(커 치킨;;)쉬운 액션알피지배우기 사토루 2005.08.11 1712
868 RPG Maker RPG 만들기로 애니메이션 만들기 file CC 2005.08.19 1708
867 RPG Maker 아르바이트를 만들자 . - 1 Norid 2005.05.20 1702
866 언어/기타 대기중에 캐릭터가 움직이게/못움직이게 하려면? 유진 2007.08.24 1700
865 언어/기타 [한단계 도약] 변수 번호의 스위치 2 A. 미스릴 2007.09.13 1694
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 51 Next
/ 51






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)