General/C, C++, C#

[C++] 객체지향 프로그래밍

croute 2009. 11. 30. 15:04

함수프로토 타입

앞으로 사용될 함수의 인자(argument)의 개수와 데이타 타입을 미리 정의해 두는데 사용된다.

 

미리 함수의 프로토 타입을 정의해 놓으면 main()함수의 뒤에 함수를 정의해도 되지만,

그렇지 않은 경우는 main() 함수의 앞에 함수를 정의해야 하므로 프로그램을 작성하기 벌거로워 진다.

 

클래스와 ADT

객체지향 프로그래밍 언어의 특징 중 하나인 추상데이터 타입을 정의할 수 있는 방법을 제공하는 것

 

C++언어에서는 C언어에서 타입이 다른 데이타를 그룹화하는 방법을 제공하는 struct를 확장하여 ADT를

정의할 수 있도록 하고 있다.

C언어에서는 struct에 멤버라고 부르는 데이타만을 정의할 수 있었지만,

C++언어에서는 멤버와 함께 멤버함수라고 부르는 연산을 추가할 수 있도록 하여 ADT를 정의한다.

 

C++언어에서 ADT를 정의할 때에는 보통 struct 대신 class라는 키워드를 사용한다.

이렇게 정의된 class는 사용자 정의 데이터 타입(user-defined data type)이 되므로

int나 char등의 시스템 정의 데이터 타입(system-defined data type)과 동일하게 사용될 수 있다.

 

연산자 다중화

연산자 다중화(operator overloading)는 하나의 연산자를 다양한 의미를 가지도록 다중화하는데 사용

 

예를 들면, 두개의 수치 데이터를 합하는데 사용하는 '+' 연산자를,

두개의 문자열 사이에 '+' 연산자를 사용하였을 때, 두 문자열을 연결시킬 수 있도록 다중화 할 수 있다.

 

함수 다중화

함수 다중화(function overloading)는 동일한 이름을 가지는 함수를 호출하더라도

함수 프로토타입에 있는 인자의 개수와 데이터 타입에 따라 서로 다른 함수를 호출하도록 제공

 

생성자와 소멸자

C++언어에서 생성자(constructor)는 객체를 생성할 때 초기값을 지정하는데 사용되고,

소멸자(destructor)는 객체의 사용이 끝나면 객체를 기억장소로 반환하는데 사용된다.

 

상속

C++ 언어에서 상속을 정의하기 위해서는 기본 클래스(base class)를 정의하고 나서,

기본클래스를 상속하는 파생 클래스(derived class)를 정의해야 한다.