본문 바로가기
IT/C++(CPP)

CPP 초급 강좌 26. 객체 와 객체지향 프로그래밍 이란?

by 신림83 2020. 11. 5.
반응형

CPP 초급 강좌 26. 객체와 객체지향 프로그래밍 이란?

cpp, c++ 하면 가장 먼저 많이들 하는 말이 오 그거 객체 지향 프로그래밍 언어,라고 많이들 들어보셨을 겁니다. 

 

그러면 객체는 뭐고, 객체지향 프로그래밍은 또 뭘까요?

 

아래 코드를 좀 보죠.

#include <iostream>
#include <vector>
#include <stack>
#include <list>
using namespace std;

int main()
{
	int i = 0;    //a0
	float f = 0;  //b0
	char c = 'a'; //c0

	std::vector<int> vector; //a1
	std::stack<int> stack;   //b1
	std::list<int> list;     //c1

	vector.push_back(0);
	vector.push_back(1);
	vector.push_back(2);
	vector.clear();
}

 우리는 객체란 표현 이전에 변수라는 표현을 먼저 배웠습니다. 위에서 a0, b0, c0는 변수라고 말할 수 있습니다. a1, b1, c1은 객체라고 말할 수 있습니다.

 

 변수는?

a0, b0, c0

 변 하는 수, 혹은 변 할수 있는 수입니다.

특정 메모리의 공간을 지칭하는 이름이고, 이 이름을 이용하여 그 메모리 공간에 값을 쓸 수 있는 것입니다. 주로 언어가 제공하는 기본 타입(primitive type)을 말합니다.

 객체는?

a1, b1, c1

 메모리를 할당함과 동시에 특정 작업(초기화)등을 할 수 있습니다.

 객체는 상태(값)와 동작(함수)을 가지고 있습니다. 객체는 다양한 함수를 통해 다양한 기능을 제공할 수 있습니다. 주로 사용자 정의 타입이라 볼 수 있죠

 

흐으음... 객체는 이렇다고 맛만 보시고 그럼 다음으로?

그럼 객체지향 프로그래밍은 뭔디여?

객체지향 프로그램을 말하려면, 먼가 다른 프로그래밍 방법이 있으니까 객체지향 프로그래밍이 잇겠죠. 과거 c를 통해 프로그램을 구현 시 이는 명령형(정차적) 프로그래밍 이란 표현을 썼습니다.

 

명령형(절차적) 프로그래밍

 위의 main 함수와 같이 내부 첫 줄의 코드부터 마지막 줄까지 쭈욱 실행되는 형식을 표현합니다. 순차적으로 실행된다고 말하며, 제어문, 반복문, 함수 등을 사용하여 실행 흐름을 변경시켜 프로그램을 진행합니다.

 

그럼

객체지향 프로그램이란?

 프로그램을 구현한다는 것은 하나의 목적이 있습니다. 이 목적을 구현하기 위해 어떤 객체가 필요한 지부터 설계하고 그 사이의 관계성으로 프로그램을 진행하는 패러다임입니다.

 

먼소린교?

음? 그냥 저런 느낌이구나 정도 일단 이해하고, 코딩하면서 이해합시다...ㅠㅠ

 

그럼 c++로 코딩하면 다 객체 지향 프로그램인 것이에요?

 그럴 수도 아닐 수도 있습니다.

 

c++은 c를 기반으로 설계되었습니다. 기본은 명령형 프로그래밍 형식으로 구현할 수도 있습니다. 객체 관련 기능을 지원하기에 객체 지향 프로그래밍도 가능합니다. 아직 언급하지 않은 일반화 프로그래맹(템플릿 방식), 함수형 프로그래밍의 기능조차 사용할 수 있습니다.

 

c++ 은 객체지향 기능을 본격 지원하기 시작한 언어이지 객체 지향만으로 코딩해야 하는 언어가 아닙니다.

 

c++은 다중 패러다임 언어라고 보시는 게 합당합니다.

 절차적, 객체 지향, 일반화, 함수형

 

사용자가 어떤 생각으로 사용을 하는가 그 거시 중요한 것이죠.

 

여기에 언급이 부족한 내용은 이후 이어지는 내용들에 차차 등장할 것이에요.

 

 

배우면 배울수록 더 배울것이..

봐주셔서 감사합니다.

반응형

댓글