// 절차지향 코드
#include <iostream.h>
void startup(int *sp)
{
*sp = 0;
cout << "차량 출발" << endl;
}
void speedup(int *sp)
{
(*sp)++;
}
void stop(int *sp)
{
*sp = 0;
cout << "차량이 멈추었습니다" << endl;
}
int car2_speed ;
void startup2()
{
car2_speed = 0;
cout << "차량 출발" << endl;
}
int main()
{
int car1_speed ;
startup(&car1_speed);
speedup(&car1_speed);
cout << "현재 속도는 " << car1_speed;
stop(&car1_speed);
startup2();
speedup(&car2_speed);
cout << "현재 속도는 " << car2_speed;
stop(&car2_speed);
return 0;
}
절차지향 코드는 함수중심이다. 함수를 정의하고 각 함수를 호출관계로 엮어가는 방식이다
// 객체지향 코드
#include <iostream.h>
class Car
{
public :
int speed;
void startup()
{
speed = 0;
cout << "차량 출발" << endl;
}
void speedup()
{
speed++;
}
void stop()
{
speed = 0;
cout << "차량이 멈추었습니다" << endl;
}
};
int main()
{
Car car1;
car1.startup();
car1.speedup();
cout << "현재 속도는 " << car1.speed << endl;;
car1.stop();
Car car2;
car2.startup();
car2.speedup();
cout << "현재 속도는 " << car2.speed << endl;;
car2.stop();
return 0;
}
main함수를 보시면 car1, car2에 대한 인스턴스를 생성하고 각 인스턴스의 멤버를 접근하는 방식으로 코딩되어 있음을 확인할 수 있다. 마치 누구에게 명령을 내리는 느낌이든다.
car1.speedUp();
코드는 car1에게 speedup()을 하라는 명령을 내리는 것 같이 보인다. 아주 직관적인 코딩이다. 확실한 대상을 먼저 지정하고 그 대상이 가진 속성이나 기능을 쓰게 한다. 바로 이것이 객체지향 코딩의 특징이다
'Windows Developer > C++' 카테고리의 다른 글
[C++] 가상함수 (0) | 2010.07.26 |
---|---|
[C++]템플릿(template) (0) | 2010.07.20 |
[C++]STL 표준 C++ 라이브러리 (0) | 2010.07.20 |
[C++]상수 함수 (1) | 2010.07.19 |
[C++]객체지향 프로그램의 4대 특징 (0) | 2010.07.17 |