(C++) 1. 객체 지향 모델링

*객체(Object)란, 실세계에서 정의 할 수 있는 모든 형태이며 '속성(data)'와 '기능(action)'을 포함한다.
---속성이란 객체가 가진 상태 또는 특성을 의미한다. 기능이란 객체가 할 수 있는 행동을 의미한다. 자동차를 예를 들면, 바퀴, 엔진상태, 배기량 등을 속성으로 구분 할 수 있고
'달린다','멈춘다'등은 기능에 해당한다.

객체별 속성과 기능을 정리한 것을 ADT(Abstract Data Type)라고 한다.

**ADT란 무엇인가?
객체와 속성 기능을 도출하는 과정은 일종의 모델링이라고 한다. 추상화를 통한 설계단계로,ADT(Abstract Data Type)라 부른다. 이 과정이 완료되면 C++ 의 헤더파일이 산출물로 나온다(Java는 Interface와 Abstract클래스가 산출물).일반적으로 ADT를 작성하면 좋은 점은 다음과 같다.
1. 상위수준의 명세서이므로 코드를 이해하기 쉽게 한다.
2. 구현 전에 충분히 검증 할 수 있으며 쉽게 변경 할 수 있다.
3. 추상적인 기술이므로 다른 프로젝트에 재사용할 수 있다.

**네임스페이스
-네임스페이스는 단어 그대로 지정한 라이브러리를 사용할 수 있도록 소속을 알리는 역할을 한다.
using namespace std는 using키워드로 std라이브러리에 포함된 내용들을 사용할 것이라고 선언하면 따로 소속을 알리지 않아도 사용할 멤벅 std라이브러리에 포함된 것으로 간주한다.
만약, 네임스페이스를 지정하지 않은 채 cout을 사용하려면, 명시적으로  cout앞에 라이브러리 이름(std)과 범위 지정자(::)를 붙여 'std::cout'처럼 std라이브러리에 포함된 멤버임을 알려주어야 한다.

예)
#include<iostream>
using namespace std;
int main()
{
 int i=0;
cin>>i;
cout<<i;
return 0;
}
또는 명시적으로 using std::cout이라고 해도 된다.



출처: 모던 C++프로그래밍 (프리렉 출판사)

댓글

이 블로그의 인기 게시물

(ElasticSearch) 결과에서 순서 정렬

(네트워크)폴링방식 vs 롱 폴링방식

(18장) WebSocekt과 STOMP를 사용하여 메시징하기