프로그램/C,C++
[C++ 기본 2] 4. OOP(Object Oriented Programming)
naudhizb
2022. 2. 23. 23:57
반응형
예를 들어 복소수를 더하는 프로그램에 대하여 생각해보자.
OOP가 아닌 절차적 프로그래밍 방식의 경우 인자로 변수를 받아 값을 더하게 된다.
// 4_OOP1.cpp 57 page
#include <iostream>
void Add(int ar, int ai, int br, int bi, // in parameter
int* sr, int* si) // out parameter
{
*sr = ar + br;
*si = ai + bi;
}
int main()
{
// 복소수 2개를 더하는 함수를 생각해 봅시다.
int ar = 1, ai = 1; // 1 + 1i
int br = 2, bi = 2; // 2 + 2i
int sr, si;
Add(ar, ai, br, bi, &sr, &si);
}
객체 지향(또는 기반) 프로그래밍의 기본은 값들을 유의미한 단위로 묶어 사용하는데에서부터 시작한다.
#include <iostream>
// 핵심 1. S/W 개발에 필요한 데이타 타입을 먼저 설계한다.
// 핵심 2. 타입을 만들때 상태를 나타내는 데이타와
// 상태를 조작하는 함수를 묶어 놓는다
// C언어 : 구조체에는 데이타 만 가능
// C++언어 : 구조체에 함수를 넣을수 있다.
// 복소수라는 타입을 먼저 설계하자.
struct Complex
{
int real;
int image;
};
Complex Add(Complex c1, Complex c2)
{
Complex temp;
temp.real = c1.real + c2.real;
temp.image = c1.image + c2.image;
return temp;
}
int main()
{
Complex c1 = { 1,1 };
Complex c2 = { 2,2 };
Complex c3 = Add(c1, c2);
}
클래스를 실제 사용하지는 않았지만, 코딩을 하기 이전 SW개발에 필요한 데이터를 먼저 정의하여 설계를 하는 것이 OOP의 기본이다.
반응형