발 표 자 : 7조 20046011 손 창 국 윤 오 성, 박 진 완 객체 지향 프로그래밍 C++
C++의 개요 C가 개발된 AT&T Bell 연구소에서 Bjarne Stroustrup에 의해 개발 됨 C에 Simula의 class를 추가하려는 노력에서 개발됨 1985년 소개된 이후 가장 많이 사용되는 객체 지향 언어 C++는 객체 지향 언어 이면서 절차 지향을 지원하며 일반화(Generic) 프로그래밍 등을 지원하기 때문에 멀티 패러다임 언어라 불린다 20046011 손창국
객체 지향의 C++ C++는 class와 객체를 통해 객체지향을 지원한다. class는 객체를 만들기 위한 틀이며 class를 통해 객체를 생성한다. C에서의 구조체와 거의 동일한 구조를 갖는다. C++에서는 맴버에 대한 보호가 3단계로 이루어진다. public, protected, private c++에서 class의 맴버는 기본적으로 private로 선언된다. 20046011 손창국
객체 지향의 C++ 생성자(constructor) 객체가 메모리를 할당 받을 때 자동 호출 class 이름과 동일한 이름을 갖는다. 생성자와 반대되는 소멸자(destructor)도 존재한다. 소멸자는 객체가 사용 후 반환될 때 자동으로 호출된다. 동적 할당에 있어 C의 malloc이나 free이 아닌 new와 delete를 사용한다. class의 모든 맴버함수에 대한 정의를 내포하지 않고 class 외부에서 ::(범위 지정 연산자)를 사용하여 정의한다. class 내부에 정의된 함수는 자동적으로 inline 함수로 정의 된다 20046011 손창국
객체 지향의 C++ 맴버의 inline 함수화 생성자 오버로딩 2가지 생성자를 통한 객체 생성(동적 할당) 20046011 손창국
객체 지향의 C++ class의 접근 지정 직접 지정이 없다면 기본적으로 private가 된다 상속을 통해 접근에 대한 권한을 변경될 수 있다. 상속을 통해 접근에 대한 권한을 변경할 수 있다. 20046011 손창국
객체 지향의 C++ 다형성의 지원 및 일반화 프로그래밍을 위한 Template 하나의 class를 가지고 여러 가지 type에 대응이 가능 때문에 코드의 일반화가 가능(일반화 프로그래밍) Template를 이용한 라이브러리인 STL과 TR1, Boost등이 있다. 20046011 손창국
객체 지향의 C++ 상속과 가상함수 상속을 통해 하위 class는 상위 class의 맴버를 활용할 수 있다. 상속을 통해 맴버 함수의 오버라이딩이 가능하다. virtual 함수는 C++에서 dynamic binding을 제공한다. 순수 virtual 함수는 하위 class에서 정의를 반드시 해야한다 20046011 손창국