본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
Bitmap
검색
검색
계정 만들기
로그인
개인 도구
계정 만들기
로그인
로그아웃한 편집자를 위한 문서
더 알아보기
기여
토론
wiki.kuzeent.com 도메인은 더 이상 제공되지 않습니다.
언리얼 엔진 스터디/프로그래밍
편집하기 (부분)
문서
토론
한국어
읽기
편집
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
편집
역사 보기
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
=== 클래스 === 클래스는 특정 기능을 모듈화 (또는 캡슐화)하여 하나의 단위로 묶는 것을 목표로 한다. 또한, 세부적인 부분을 외부로 드러나지 않게 하여 모듈 간의 결합도를 떨어뜨린다. 이렇게 겉보기로는 불편해보이게 프로그램을 작성하는 이유는 기능이 많아졌을 때 클래스끼리 정해진 방식대로 통신하지 않으면 나중에 그 기능을 수정할 때 수많은 코드를 탐색하고 다시 작성 (리팩토링)해야 할 수 있기 떄문이다. 다음은 HelloWorld라는 이름의 클래스를 만들고, NotHello라는 이름의 HelloWorld의 자식 클래스를 만드는 예제이다. <syntaxhighlight lang="cpp" line> // HelloWorld.h #include <cstdio> class HelloWorld { public: // 클래스의 외부에서도 직접 사용하고 수정할 수 있게 노출한다. HelloWorld() // 클래스가 생성되면 자동 실행되는 생성자 { priv = 0; } ~HelloWorld() // 클래스가 사라질 때 실행되는 소멸자 { printf("Destructor"); } void Hello() { printf("Hello World!"); } // private 변수에 접근할 때 void SetPriv(int value) // Setter { priv = value; } int GetPriv() // Getter { return priv; } // 함수 오버라이드 (동명의 부모 클래스의 함수와 자식 클래스의 함수의 가능 차별화시키기) virtual void DisplayClassName() { printf("Class HelloWorld"); } protected: // 이 클래스와 자식 클래스에서만 직접 사용하고 수정할 수 있게 노출한다. // 클래스 선언문이 길어지면 cpp 파일에 함수의 기능을 따로 작성할 수 있다. void HelloProtected(); private: // 이 클래스에서만 직접 사용하고 수정할 수 있게 노출한다. int priv; } class NotHello: public HelloWorld { public: void DisplayClassName override { printf("Class NotHello"); } } // HelloWorld.cpp #include "HelloWorld.h" HelloWorld::HelloProtected() { printf("Hello Protected"); } </syntaxhighlight> 생성된 클래스는 인스턴스라고 부른다. 다음은 클래스의 인스턴스를 만들고 클래스에 접근하는 방법에 대한 예제이다. <syntaxhighlight lang="cpp" line> #pragma once #include <cstdio> #include "HelloWorld.h" int main(void) { HelloWorld a; // a라는 이름의 클래스 인스턴스 생성 // 클래스 인스턴스에 접근할 때에는 .을 사용한다 int Priv = a.GetPriv(); a.HelloProtected(); // protected는 클래스 외부에서 사용할 수 없으므로 컴파일 오류 printf("%d", a.priv); // private는 클래스 외부에서 사용할 수 없으므로 컴파일 오류 } </syntaxhighlight>
요약:
Bitmap에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
Bitmap:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
내용 폭 제한 전환