๋ถ๋ฆฌ ์ปดํ์ผ์ C++ ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ํ์ผ๋ก ๋๋์ด์ ์ปดํ์ผ ํ ํ, ํ๋์ ๋งํฌ๋ก ํฉ์น๋ ๊ฐ๋ฐ ๋ฐฉ์ ์ค ํ๋์ด๋ค. ๋ถํ ์ปดํ์ผ์ด๋ผ๊ณ ๋ ๋ง์ด ๋ถ๋ฅด๋ ๊ฒ ๊ฐ๋๋ฐ ์ผ๋จ ๋๋ ๋ถ๋ฆฌ ์ปดํ์ผ๋ก ๋ฐฐ์ ๋ค. ์ฒ์ ๋ฐฐ์ธ ๋๋ ๊ตณ์ด...๋ผ๋ ์๊ฐ์ด ๊ฐํ๊ฒ ๋ค์์ง๋ง, ์ฌ๋ฌ ์ฌ๋์ด ๋์ ์์ ํ๊ธฐ์๋ ์ ์ฉํ๊ณ ์ฝ๋๊ฐ ๊ธธ์ด์ง ๋ ์ด๋ค ํ์ผ์ธ์ง ํ์ ํ๊ธฐ๋ ์ฝ๋ค. ๋ชจ๋ํ์ ์ผ์ข ์ด๋ผ ์๊ฐํด๋ ์ข์ ๊ฒ ๊ฐ๋ค.
๋ถ๋ฆฌ ์ปดํ์ผ์ ํฌ๊ฒ ์ธ ๊ฐ์ ํ์ผ๋ก ๋๋๋ค. ๊ฐ๋จํ ๊ณ์ฐ๊ธฐ ํ๋ก๊ทธ๋จ๊ณผ ํจ๊ป ์ดํด๋ณด์
1. ํค๋ ํ์ผ(Calculator.h)
#ifndef CALCULATOR_H
#define CALCULATOR_H
class Calculator {
private:
double result;
public:
Calculator(); //๊ธฐ๋ณธ ์์ฑ์
Calculator(double initial); //๋งค๊ฐ๋ณ์ ์์ฑ์
void add(double value);
void subtract(double value);
void multiply(double value);
void divide(double value);
double getResult() const;
void clear();
void display() const;
};
#endif
ํจ์ ์ด๋ฆ๋ง ๋์ถฉ ๋์ ธ๋๊ณ ์ ๊ธฐํ๋ ๊ฐ์ ํ ํ์๊ฐ ์๋๋ค. ํค๋ ํ์ผ์ ์ค์ ๋ก ๋จ์ํ ํด๋์ค ์ ์ธ ๋ฐ ํจ์์ ๊ธฐ๋ณธํ๋ง ์ ์ธํ๋ ๊ณณ์ด๋ค. ๊ธฐ๋ณธ ๋ผ๋๋ฅผ ์ก์ ๋๋ ์ฅ์๋ก ์ดํดํ๋ฉด ์ข๋ค. ifndef๊ฐ ๋ญ๋ฐ ์น๋์๋ ๋ค์์ ์ค๋ช ํ๊ฒ ๋ค...
2. ๊ตฌํ ํ์ผ(Calculator.cpp)
#include "Calculator.h"
#include <iostream>
using namespace std;
Calculator::Calculator() : result(0.0) {}//์ด๊ธฐํ
Calculator::Calculator(double initial) : result(initial) {}//์
๋ ฅ ๊ฐ์ผ๋ก ์ด๊ธฐํ
void Calculator::add(double value) {
result += value;}
void Calculator::subtract(double value) {
result -= value;}
void Calculator::multiply(double value) {
result *= value;}
void Calculator::divide(double value) {
if (value != 0) result /= value;
else cout << "0์ผ๋ก ๋๋๊ธฐ ๋ถ๊ฐ" << endl;
}
double Calculator::getResult() const {
return result;}
void Calculator::clear() {
result = 0.0;}
void Calculator::display() const {
cout << result << endl;}
๊ตฌํ์ ์ด๊ณณ์์ ์ด๋ฃจ์ด์ง๋ค. ๋งจ ์ฒ์์ #include ํค๋ ํ์ผ์ ํตํด ์ฐธ์กฐํ๊ฒ ๋ง๋ค์ด์ค ํ, ๊ตฌ์ฒด์ ์ผ๋ก ํด๋์ค ๋ฐ ํจ์์ ๋ด์ฉ๋ฌผ์ ์ฑ์์ฃผ์. ์ฌ๊ธฐ์์๋ ํ๋์ ๊ตฌํ ํ์ผ๋ง ์กด์ฌํ์ง๋ง, ์ฌ๋ฌ ๊ตฌํ ํ์ผ์ด ์กด์ฌํ ๋์๋ ๊ฐ ๊ตฌํ ํ์ผ์ ๋ค๋ฅธ ๊ตฌํ ํ์ผ๊ณผ ๋ ๋ฆฝ์ ์ผ๋ก ์ปดํ์ผ๋๋ค. ์ด ์ ์์ ์๋ ์ต์ ํ/๋ชจ๋ํ/ํ์ ํจ์จ์ฑ ๋ฑ์ ์ฅ์ ์ด ๋๋ฌ๋๊ฒ ๋๋ ๊ฒ์ด๋ค.
๊ตฌํ ํ์ผ์ด ์ปดํ์ผ๋ ๊ฒฐ๊ณผ๋ฌผ์ ๋ชฉ์ ํ์ผ๋ก ์์ฉํ๋ค. ์ผ๋ฐ์ ์ธ ์๋์ฐ์์๋ .obj๋ก ๋ณด๋ฉด ๋๋ค. ์ด ์์ ์์ ๋ชฉ์ ํ์ผ์ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญ๋ ์ํ์ด๋ฉฐ, ์คํ ์ง์ ๋จ๊ณ์ ์์๋ค.
3. ๋ฉ์ธ ํ์ผ(main.cpp)
#include "Calculator.h"
#include <iostream>
using namespace std;
int main(){
Calculator mycalc;
๋ง์๋๋ก ์ฌ์ฉํฉ์๋ค...
return 0;
}
์ ์ํ ์ ์ ์ฌ๊ธฐ์์ ์ฌ๋ฌ ํ์ผ๋ค์ด ํฉ์ณ์ง๋ ๊ฒ์ด ์๋๋ผ, ์ปดํ์ผ๋ ๊ฐ๊ฐ์ ๋ชฉ์ ํ์ผ๋ค์ด ๋งํฌ ๋จ๊ณ์์ ํฉ์ณ์ง๋ค๋ ์ ์ด๋ค.
์ด์ ๋๋ง์ ์ฝ๋ฉ์ ํ๋ ด...
์ดํ์๋ ๋ถ๋ฆฌ ์ปดํ์ผ ๊ณผ์ ์์ ๋ํ๋ ์ ์๋ ์ฌ๋ฌ ์ฌ์ํ ๋ฌธ์ ๋ค ๋ฐ ์ฃผ์์ ์ ๋ํด ์์๋ณด๋๋ก ํ์.
1. ์ค๋ณต ๋ฌธ์
// School.h ํ์ผ์ ์ ์ํ๋ค๊ณ ์๊ฐํด๋ณด์
class Student{
์ด ๋ด๋ถ์์ ์์ ๋ก์ด ์ฝ๋ฉ์ด ์ด๋ฃจ์ด์ง๋ค...
}
// ์๋ก์ด ํค๋๋ฅผ ๋ง๋ค ๊ฒ์ด๋ค. ์ ์ด๋ฆ์ Highschool.h๋ก ํด๋ณด์
# include "School.h"
class Highschool{
Student student;
}
// ์ดํ ๋๋ค๋ฅธ ์ ํค๋๋ฅผ ๋ง๋ค ๊ฒ์ด๋ค. SecondHighschool.h๋ก ํด๋ณด์
# include "School.h"
class SecondHighschool{
Student student;
}
// ์ด์ main์ผ๋ก ๊ฐ์. ์ฐ๋ฆฌ๋ ๋ ๊ณ ๋ฑํ๊ต์ ์ ๋ณด๊ฐ ๋ชจ๋ ํ์ํ ์ํ๋ค
#include "Highschool.h"
#include "SecondHighschool.h"
์ด๋ฌ๋ฉด ์ค์ ๋ก ๊ตฌ๋๋ ๋ School.h๊ฐ ๋ ๋ฒ ์ฐธ์กฐ๋์ด ๋ฒ๋ฆฐ๋ค...
์ด ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉํ๋๊ฒ ifndef๋ค.
๋ค์ School.h๋ฅผ ์ ์ํ๋ ๋งจ ์ฒ์์ผ๋ก ๋์๊ฐ์
๊ฐ์ฅ ์์ค์ ์ด ๋ฉํธ๋ฅผ ์ถ๊ฐํ๋ค
#ifndef SCHOOL_H // ๋ง์ผ School.h๊ฐ ์ ์๋์ด์์ง ์๋ค๋ฉด
#define SCHOOL_H // School.h๋ฅผ ์ ์ํ๋ค
class Student{
์ฌ ๋ฌ ๋ด ์ฉ ๋ค...
}
#endif // ์กฐ๊ฑด๋ฌธ(ifndef)๋ฅผ ์ข
๋ฃํ๋ค. ์ด๋ฏธ ์ ์๋์ด ์๋ค๋ฉด ์ดํ ๋จ๊ณ๋ก ๋์ด๊ฐ๋ ๊ฒ์ด๋ค
๋ค๋ฅธ ๋ฐฉ์๋ ์กด์ฌํ๋ค.
๋๊ฐ์ด School.h๋ฅผ ์ ์ํ๋ ๋งจ ์ฒ์์ผ๋ก ์ฌ๋ผ๊ฐ์
#pragma once //์ ํ ์ค๋ง ์ถ๊ฐ
class Student{
}
๋!
์ด์ชฝ์ด ํจ์ฌ ๊ฐ๋จํ๊ณ ์ฝ๊ธฐ๋ ์ฝ๊ณ ์ฌ์ง์ด ์ฑ๋ฅ๋ง์ ์ข๊ธฐ๋ ํ์ง๋ง, ๋นํ์ค ๋ฐฉ์์ด๋ค. ํ์ง๋ง ์์ฆ์ ์ ๋ง ๋๋ถ๋ถ์ ์ปดํ์ผ๋ฌ์์ ์ง์ํด์ฃผ๊ณ ์๊ธฐ์ ๊ทธ๋ฅ ์จ๋ ๋ ๊ฒ ๊ฐ๋ค.
2. ์ํ ์ฐธ์กฐ ๋ฌธ์
Math.h๋ฅผ ์ ์ํ๋ ๊ณผ์ ์ด๋ค
#include "Physics.h" //์ด๋ฌ๋ฉด ์ฌ์ ์ Physics๊ฐ ์ ์๋์ด ์์ด์ผ ํ๋ค
class Math {
Physics* physics;
}
๊ทธ๋ฆฌ๊ณ Physics๋ฅผ ์ ์ํ๋ ๊ณผ์ ์ด๋ค
#include "Math.h"
์ด์ฒ๋ผ Physics ์ ์์ Math๊ฐ ํ์ํ๊ณ , Math ์ ์์๋ Physics๊ฐ ํ์ํ ๊ฒฝ์ฐ๊ฐ ์๋ค

์ด๋ฐ ๋ฌธ์ ๋ ์ ๋ฐฉ ์ ์ธ์ผ๋ก ํด๊ฒฐํ ์ ์๋ค. ๊ทผ๋ฐ ์ ๊น ๊ท์ฐฎ์์ ์ฌ๊ธฐ์๋ถํฐ๋ ๋์ค์ ์
'๊ณต๋ถ > ์ฝ๋ฉ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋์ Big-O ํ๊ธฐ๋ฒ (1) | 2025.08.18 |
|---|---|
| [C++] vector์ pair ์ฐ์ต (2) | 2025.08.17 |
| [C++] new์ malloc์ ํ๋๋ธ๋ ๋๊ฐ ๋จน๊ณ ์ถ์๋ ์ฌ์์น๊ตฌ์ ๊ฐ๋ค (3) | 2025.08.03 |
| [c++] ๋ฐฑ์ค 10828 ์คํ (0) | 2025.08.02 |
| [c++] ๋งฅ๋๋ ๋ ํ๋ถ๊ธฐ ์ฃผ๋ฌธ ํ๋ก๊ทธ๋จ (1) | 2025.07.29 |