클래스 (컴퓨터 프로그래밍): 두 판 사이의 차이

내용 삭제됨 내용 추가됨
편집 요약 없음
편집 요약 없음
1번째 줄:
{{정리 필요|날짜=2009-6-9}}
 
'''클래스'''는 [[객체지향 프로그래밍]](OOP)에서 '''클래스'''는 특정 종류의객체를 객체내에생성하기 있는위해 변수와 메쏘드를 정의하는 일종의 틀,틀이다. 객체를 템플릿이다정의 하기 위한 상태(멤버변수)와 메서드(멤버변수)로 구성된다.{{sfn|Gamma|Helm|Johnson|Vlissides|1995| p=14}}{{sfn|Bruce|2002|loc=2.1 Objects, classes, and object types, {{Google books|9NGWq3K1RwUC|Objects, classes, and object types|page=18|plainurl=yes}}}}
 
[[템플릿]]을 사용하면 객체를 클래스로 정의 할 때 멤버의 자료형을 미리 정하지 않고 객체를 사용할 때 결정할 수 있다. 이를 통해 클래스나 멤버의 중복 정의를 하지 않아도 되므로 효율적으로 코딩이 가능하다.
따라서, 객체는 클래스로 규정된 인스턴스로서, 변수 대신 실제값을 가진다.
 
따라서, 객체는 클래스로 규정된 인스턴스로서, 변수 대신 실제값을 가진다.
 
클래스는 OOP를 정의하는 개념 중 하나인데, 클래스에 대한 중요한 몇가지의 개념들은 다음과 같다.
줄 13 ⟶ 15:
클래스와 그 서브클래스 간의 구조를 "클래스 계층(hierarchy)"이라 한다.
 
== [[C++]]에서 예 ==
 
다음은 [[C++]]에서의 클래스 예이다.
 
<source lang="cpp">
줄 22 ⟶ 24:
 
class A {
 
int n;
A(int n=0); // 생성자 - 주로 객체의 상태(멤버변수 등)의 초기설정 등을 담당한다.
public:
~A(); // 소멸자 - 객체 종료 시 필요한 조치를 취한다. 동적 변수 등의 제거를 하는 경우.
A(int n=0);
~A();
void SetN(int n);
int GetN();
 
private:
int n;
 
};
 
A::A(int n=0) {
this->n = n;
}
 
줄 37 ⟶ 43:
 
void SetN(int n) {
this->n = n;
}
 
int GetN() {
return n;
}
 
int main(void) {
A a;
cout << GetN() << endl;
a.SetN(10);
cout << GetN() << endl;
 
return 0;
}
</source>
줄 58 ⟶ 65:
10
</source>
 
== 주석 ==
<references/>
 
{{자료형}}