반응형
Notice
Recent Posts
Recent Comments
Link
Brise
[C++ 기본 2] 4. OOP(Object Oriented Programming) 본문
반응형
예를 들어 복소수를 더하는 프로그램에 대하여 생각해보자.
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의 기본이다.
반응형
'프로그램 > C,C++' 카테고리의 다른 글
[C++ 기본 2] 7. 접근지정자 (0) | 2022.03.02 |
---|---|
[C++ 기본 2] 6. STL (0) | 2022.03.02 |
[C++ 기본2] 5. OOP(Stack example) (0) | 2022.02.24 |
[C++ 기본 2] 3. example(reference, template) (0) | 2022.01.29 |
[C++ 기본 2] 2. memory allocation (0) | 2022.01.29 |
[C++ 기본 2] 1. reference (0) | 2022.01.29 |
[C++ 기본] 11. nullptr (0) | 2022.01.29 |
Comments