c언어와 c++차이
c++는 c언어를 발전시킨 언어입니다. c언어에서는 c=c+1을 간단하게 c++이라고 쓰지 않습니까? 즉 c에다 기능을 하나 더한 것이 c++언어입니다.
c와 c++은 문법이나 사용법등이 모두 같은데 c++에는 c에는 없는 하나가 있읍니다.
바로 class입니다. c++에는 class를 이용하여 우리가 소위말하는 객체를 표현할 수 있습니다. 그래서 c++은 최초의 객체지향형언어 입니다.
C는 과거 프로그램들이 조그만할때 쓰였고요.
C++는 대규모 프로그래밍 분야에서, C의 구조적 ,절차적 방법을 개선하기 위해서 객체지향의 탈을 씌운 언어입니다.
C가 가장 많이 쓰이는 언어이기 때문에, 새로운 객체 지향 언어들도 많지만, C에다가 객체지향의 힘을 부여한 것이죠.
그렇기 때문에, 다른 언어들만큼 깔끔하지는 않습니다. 소규모 프로젝트의 경우는 뭘로 하나 상관없습니다.
C++는 대규모 프로그래밍 분야가 목적이기 때문에, 디자인 철학이 굉장히 강조가 됩니다.
그렇기 때문에, C++의 길은 끝이 없다고 봐도 됩니다. 그리고 어렵습니다.
쉽게 접근할 수 있는 윈도우 환경에서는 대개 C++를 이용하는게 대부분입니다.
사용되는 영역
c : Unix나 Window와 같은 운영체제(Operating System)을 비롯한 통신용, 시스템용 프로그램 개발에 많이 사용됩니다.
c++ : 일반적인 프로그램을 개발하는데 사용되나, 최근 인터넷의 발전으로 java프로그램에 밀려나고 있음(밀려났음이 더 정확한 표현)
객체지향과 클래스
기존에 있던 C는 절차지향언어입니다. 즉 순서에 입각해서 프로그래밍을 하게 됩니다.
하지만 컴퓨터의 발전과 더불어 소프트웨어의 용량도 커지게 되고 또 복잡도 마져 증가하게 되었습니다.
이제는 절차 식으로 코딩을 하다가는 너무 방대한 코딩의 양 때문에 오류가 발생한다면 수정하기도 힘들어졌습니다.
즉 유지보수가 너무 힘들게 된겁니다. 이런 비효율성을 개선하고자 모듈화란 이론이 나오게 되었습니다.
예를 들어 선풍기를 기존의 C방식으로 조립을 하게되면 모든 부품하나하나 주욱 한번에 설계하는 것인 반면,
모듈화로 조립을 하게 되면 날개, 뚜껑, 버튼, 모터등등으로 각각을 "기능별"로 나누고, 필요한 것을 가지고 와서
붙이기만 하면 됩니다. 이러면 고장이 난다면 고장난 부분만 수정하면되고 또 유지보수도 훨씬 편하게 될 것입니다.
이런방식이 초기에는 모듈화로불렸고 더 나아가 지금은 "객체지향"이라고 불립니다.
선풍기 각각의 부품처럼 실제하는 각각을 객체로 정의합니다. 제가 지금 사용하는 맥북프로도 객체가 될 수 있고,
제가 좋아하는 수박바도 객체가 될 수 있습니다. 즉 우리가 어떤 대상을 추상화할 수 있는것이 객체입니다.
그리고 이런 비슷한 객체들을 모아 놓은 것이 클래스입니다. 삼성노트북, 엘지 노트북, 애플노트북, 도시바노트북, 소니노트북각각의 객체라 볼 수 있고 이들의 특징을 모아 놓은 것이 바로 "클래스"입니다.
객체지향의 특징
캡슐화
클래스 구현에 대한 세부적인 내용은 사용자에게 캡슐화되어 있어 사용자에게는 감춰진 형태로 존재합니다. 예를들어 특정 대 출 을 Loan 클래스의 객체로서 생각해봅니다. 그럼 이자율, 대출액, 대출 기간이 데이터 속성이 되고, 매월 납입금과 전체 납입금을 계산하는 것은 함수가 됩니다. 자동차를 한 대 구입한다고 했을 때 이자율, 대출액, 대출 기간을 갖는 클래스를 실체화하여 대출 객체를 생성하고 대출에 대한 매월 납입금과 전체 남입금을 계산하는 함수를 사용 할 수 있습니다. 하지만 Loan 클래스의 사용자는 이들 함수가 어떻게 구현되는지 알필요가 없다는 것이 캡슐화입니다.
상속
말 뜻 그대로 위에서 아래로 상속을 받는다는 뜻 입니다. 미리 정의된 클래스를 상속받아서 다른 클래스를 생성할 수 있습니다. 새로운 클래스를 정의 할 필요 없이 기존의 개발자가 미리 정의해놓은 개발과정이나 라이브러리를 가지고 와서 사용할 수 있는 것으로 시간과 돈을 줄일 수 있습니다. 이때문에 모듈의 재상용성과 코드의 간결성을 준다는 장점을 가집니다.
다향성
같은 객체지만 조건에 따라 다르게 작용하는것입니다. 예를들어 계산기에서 합계를 구한다고 합니다. 입력란에 정수를 적거나, 소수, 분수를 적으면 합계를 구하는 공식은 같지만 결과는 다르게 나옵니다. 이는 모두 합계를 구하는 메쏘드를 호출하지만 넘겨주는 메시지가 다르다는 것입니다.
'IT정보' 카테고리의 다른 글
컴퓨터 내부구조와, 구성요소 알아보기 (1) | 2017.09.01 |
---|---|
HTML5란? HTML5 개념 (0) | 2017.09.01 |
CCS란?? CCS 개념 알아보기 (0) | 2017.08.30 |
코딩이 대세, 어린이 코딩열풍 (0) | 2017.08.30 |
유닉스란?? 유닉스에 대해 알아보자 (0) | 2017.08.30 |