객체 지향 이라는 개념에 대해서는 대학교때 배우고...
완전 오랫만에 다시 접해본다.
일단 말뜻을 살펴 보자면,
객체 지향 프로그래밍, (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 |