Backend/C++

C++, 객체지향 언어!

petitCoding 2012. 4. 12. 12:25

 

객체 지향 이라는 개념에 대해서는 대학교때 배우고...

완전 오랫만에 다시 접해본다.

일단 말뜻을 살펴 보자면,

 

객체 지향 프로그래밍, (Object Oriented Programming)

객체 (대상)에 지향하여 작성되는 프로그래밍, 정도로 해석할 수 있는데, 사실 이 말만 보면 정확히 와닿지는 않는다.

 

그럼 C언어는 어떤 프로그래밍일까?

이 부분을 생각하면 객체 지향 프로그래밍이 무엇인지, 그나마 조금 와닿게 된다.

C언어는 "절차 지향 프로그래밍" 이다.

C 언어로 짜여진 함수의 처음부터, 끝까지 살펴보면 C++과는 다르게 철저히 순서대로, 흐름을 따라 진행 되도록 되어 있는 것을 알 수 있다.

순서대로 변수를 선언하고, 함수를 호출하고, 결과값을 리턴하는...

아마 C언어를 많이 다루어본 사람이라면 C++의 객체 지향 개념은 더욱더 어색하고 생소할 것이다. (나처럼)

예제를 통해 절차 지향 프로그래밍과, 객체 지향 프로그래밍의 차이를 간단히 살펴 보자.

 

< calc.c >

#include <stdio.h>

 

int calc(int a, int b)

{

return a + b;

}

int main(void)

{

int a, b, result;

a = 3;

b = 4;

result = calc(a, b);

printf("result : %d\n", result);

return 0;

}

 

<calc.cpp>

main()

{

int a, b, result

resultCalc r;

a = 3;

b = 4;

result = r.getCalc(a, b);

r.showCalc(r);

return 0;

}

 

Cpp 파일을 보면, 함수를 호출하는 것이 함수 자체가 아닌 객체 r 임을 알 수 있다.

C언어에서는, 객체가 함수를 호출하지 않고, 프로그램의 흐름에 따라 함수가 호출된다.

이것이 객체 지향과 절차 지향의 예라고 할 수 있겠다 ^^

 

 

반응형

'Backend > C++' 카테고리의 다른 글

객체 (Object)  (0) 2012.04.13
클래스?구조체?  (0) 2012.04.13