π€ Study/C++ & C#
02. μ°μ°μ / ν¨μ / ν΄λμ€
GAMEMING
2024. 3. 13. 04:02
728x90
< μ°μ°μ >
#include <iostream>
using namespace std;
// λ©λͺ¨λ¦¬ μμ
// STACK - HEAP - DATA - CODE
// 01. μ°μ°μ
// λ°μ΄ν° μ°μ° λ° κ°κ³΅ κ°λ₯
// 1) μ°μ μ°μ°μ
// 2) λμ
μ°μ°μ
// 3) μ¦κ° μ°μ°μ
// 4) λΉκ΅ μ°μ°μ
// 5) λ
Όλ¦¬ μ°μ°μ
// 6) λΉνΈ μ°μ°μ
// 7) μΌν μ°μ°μ
int a = 1;
int b = 7;
bool isSame;
bool isDiff;
bool isGreater;
bool isSmaller;
bool test;
int hp = 100;
bool isInvincible = true;
unsigned char flag;
const int Air = 0;
const int Stun = 1;
const int PolyMorph = 2;
const int Invincible = 3;
int main()
{
// 01) μ°μ μ°μ°μ
// μ¬μΉ μ°μ°
// λ°λ―Έμ§ κ³μ°, 체λ ₯ κΉκΈ°, 루νλ¬Έ λ± λ€μν κ³³μμ μ¬μ©
a = a + 3; // add (μ°μ°μκ° κ°μ μλ―Έ)a += 3
cout << a << endl;
a = b - 3; // sub a -= 3
cout << a << endl;
a = b * 3; // mul a *= 3
cout << a << endl;
a = b / 3; // λλμ
div a /= 3
cout << a << endl;
a = b % 3; // λλ¨Έμ§ dic a %= 3
cout << a << endl;
// 02) λμ
μ°μ°μ
// = : μνμμλ κ°λ€μ μλ―Έμ§λ§, μ½λ©μμ λμ
a = b; // aλ₯Ό bμ λμ
νκ³ b λ°ν
cout << a << " " << b << endl;
// += -= *= /= %=
// 03) μ¦κ° μ°μ°μ
// 1μ© μ¦κ° νΉμ κ°μμν¬ λ μ¬μ©
// 7 7
b = a++;
cout << a << " " << b << endl; // 8 7
b = ++a;
cout << a << " " << b << endl; // 9 9
b = a--;
cout << a << " " << b << endl; // 8 9
b = --a;
cout << a << " " << b << endl; // 7 7
// 04) λΉκ΅ μ°μ°μ
// λ ν μ¬μ΄μ ν¬κΈ°λ₯Ό λΉκ΅νλ μ°μ°μ
// ex) 체λ ₯μ΄ 0λλ©΄ μ¬λ§, 체λ ₯μ΄ 30%μ΄νλ©΄ 무μ λ°λ λ±
// μ¦ νΉμ μ‘°κ±΄μ΄ λλ©΄ μ΄λ ν event
// a == b : aμ bκ° κ°μκ°?
// κ°μΌλ©΄ 1, λ€λ₯΄λ©΄ 0
isSame = (a == b);
cout << isSame << endl;
// a != b : aμ bκ° λ€λ₯Έκ°?
// λ€λ₯΄λ©΄ 1, κ°μΌλ©΄ 0
isDiff = (a != b);
cout << isDiff << endl;
// a > b . a >= b
isGreater = (a > b);
cout << isGreater << endl;
// a < b . a <= b
isSmaller = (a < b);
cout << isSmaller << endl;
// 05) λ
Όλ¦¬ μ°μ°μ
// μΈμ νμνκ°? 쑰건μ λν λ
Όλ¦¬μ μ¬κ³ κ° νμ
// ex) λ‘κ·ΈμΈν λ μμ΄λλ κ°κ³ + λΉλ²λ κ°μμΌ νλ€ (λμμ λ§μ‘±ν΄μΌ ν¨)
// ex) κΈΈλ λ§μ€ν°μ΄κ±°λ μ΄μμ κ³μ μ΄λ©΄ κΈΈλ ν΄μ°κ°λ₯ (OR)
// ! not
test = !isSame; // isSame κ°μ λ°λλ‘, isDiffμ κ°μ μλ―Έ
cout << test << endl;
// && and
// a && b -> λλ€ 1μ΄λ©΄ 1, κ·ΈμΈ 0 (λ 쑰건 λ§μ‘±ν΄μΌν¨)
test = (hp <= 0 && isInvincible == false);; //μ£½μ
cout << test << endl;
// || or
// a || b -> λ μ€ νλλΌλ 1μ΄λ©΄ 1 (λλ€ 0μ΄λ©΄ 0)
test = (hp > 0 || isInvincible == true); //μμ‘΄
cout << test << endl;
// 06) λΉνΈ μ°μ°μ
// μΈμ νμνκ°?
// ex) λΉνΈ λ¨μμ μ‘°μμ΄ νμν λ
// λνμ μΌλ‘ BitFlag
// ~ bitwise not
// λ¨μΌ μ«μμ λͺ¨λ λΉνΈλ₯Ό λμμΌλ‘ 0μ 1λ‘, 1μ 0μΌλ‘ λ°κΏ
// & bitwise and
// λ μ«μμ λͺ¨λ λΉνΈ μμ λμμΌλ‘ andλ₯Ό νλ€
// | bitwise or
// λ μ«μμ λͺ¨λ λΉνΈ μμ λμμΌλ‘ orλ₯Ό νλ€
// ^ bitwise wor
// λ μ«μμ λͺ¨λ λΉνΈ μμ λμμΌλ‘ xorνλ€
// << λΉνΈ μ’μΈ‘ μ΄λ
// λΉνΈμ΄μ nλ§νΌ μΌμͺ½μΌλ‘ μ΄λ
// μΌμͺ½μ λμΉλ nκ°μ λΉνΈλ λ²λ¦Ό, μλ‘ μμ±λλ nκ°μ λΉνΈλ 0
// >> λΉνΈ μ°μΈ‘ μ΄λ
// λΉνΈλ₯Ό nλ§νΌ μ€λ₯Έμͺ½μΌλ‘ μ΄λ
// μ€λ₯Έμͺ½μ λμΉλ nκ°μ λΉνΈλ λ²λ¦Ό
// μΌμͺ½ μμ±λλ nκ°μ λΉνΈλ
// - λΆνΈκ° μ‘΄μ¬ν κ²½μ° λΆνΈ λΉνΈλ₯Ό λ°λΌκ°
// - μλλ©΄ 0
// Ob0000 [무μ ][λ³μ΄][μ€ν΄][곡μ€λΆμ] 4bit
// 무μ μνλ‘ λ§λ λ€
flag = (1 << Invincible); // 0b1000 3μΉΈμ΄λ!
// λ³μ΄ μν
flag |= (1 << PolyMorph); // Ob1100
// 무μ μΈμ§ νμΈνκ³ μΆλ€?
// bitmask
bool invincible = ((flag & (1 << Invincible)) != 0);
// 무μ μ΄κ±°λ μ€ν΄ μνμΈμ§ νμΈνκ³ μΆλ€
bool stunOrInvincible = ((flag & 0b1010) != 0);
// 07. μΌν μ°μ°μ
// 쑰건μ? λ³μ 1 : λ³μ 2
// κ²°κ³Όκ° trueλΌλ©΄ λ³μ 1μ λ°ν, false λΌλ©΄ λ³μ 2λ₯Ό λ°ν
int x = 20;
int y = 14;
int result;
result = (x > y) ? x : y;
cout << result << endl;
}
< ν¨μ >
#include <iostream>
using namespace std;
// 02. ν¨μ
// μ λ² μκ°μ κ°μ²΄μ λν΄ μ€λͺ
νλλ° μμ±κ³Ό κΈ°λ₯μ΄ μλ€κ³ νμλ€.
// μ€λμ μ΄λ ν κ°μ²΄μ λν κΈ°λ₯μ λ§λλ €κ³ νλ€.
// μμ¬μ΄λΌλ νλ μ΄μ΄ κ°μ²΄κ° μ΄λνλ κΈ°λ₯μ λ§λ€κΈ° μν΄μλ
// μμ¬μ΄κ° μ΄λν μ μλ€λ κ²μ "μ μΈ"ν΄μΌ νκ³
// ꡬ체μ μΌλ‘ μ΄λ»κ² μ΄λνλμ§ "μ μ"ν΄μΌ νλ©°,
// μ΄λ€ μν©μμ λ°λμ§ μλ €μ£Όλ €λ©΄ λ°λ κΈ°λ₯μ "νΈμΆ" ν΄μΌ νλ€
class YeSeul {
public:
void Move(); // μ μΈ
};
void YeSeul::Move() // μ μ
{
cout << "μμ¬μ΄λ λ¬λ¦°λ€" << endl;
}
int main()
{
YeSeul player;
player.Move(); // νΈμΆ
}
// * ν¨μμ ꡬμ±μμ
// : λ°νκ° ν¨μλͺ
{λ§€κ°λ³μ λͺ©λ‘}
// : λ°νκ° - ν¨μλ₯Ό μνν λ€μ λ°ννλ κ°, μμΌλ©΄ void
// : ν¨μλͺ
- ν¨μ μλ³μμ
// : λ§€κ°λ³μ λͺ©λ‘ : ν¨μμ κΈ°λ₯μ μννκΈ° μν μ
λ ₯κ°
#include <iostream>
using namespace std;
// μλμ μ½λλ μ»΄νμΌ μλ¬ λ°μ
// ν΄λμ€ λ³μμ ν΄λμ€ λ©€λ² ν¨μλ μ¬μ© μ μ μ μΈλμ΄μΌ νλ€ !!
// * ν¨μ μ μΈ
// μ»΄νμΌλ¬λ ν¨μ μ μΈμ λ³΄κ³ λ°νκ°μ μλ£νμ΄ λ¬΄μμΈμ§ μλ€
// μ»΄νμΌλ¬λ ν¨μ μ μΈμ λ³΄κ³ λ§€κ° λ³μμ κ°μκ° μ¬λ°λ₯Έμ§ νμΈνλ€
// μ»΄νμΌλ¬λ ν¨μ μ μΈμ λ³΄κ³ λ§€κ°λ³μμ μλ£νμ΄ μ¬λ°λ₯Έμ§ νμΈνλ€
// * ν¨μ μ μ
// μ μκ° μμ κ²½μ° -> LNK2019, LNK1120 μ€λ₯
// κΈ°λ₯μ μ€μ λ‘ κ΅¬ννλ λΆλΆμ΄κΈ°μ μμΌλ©΄ μλ¨
int main()
{
YeSeul player;
player.Move(); // νΈμΆ
}
class YeSeul {
public:
void Move(); // μ μΈ
};
void YeSeul::Move() // μ μ
{
cout << "μμ¬μ΄λ λ¬λ¦°λ€" << endl;
#include <iostream>
using namespace std;
// * κ°μ μν νΈμΆκ³Ό μ°Έμ‘°μ μν νΈμΆ & λ§€κ°λ³μ
// κ°μ μν νΈμΆμ λ³μλ₯Ό 볡μ¬νλ κ²κ³Ό κ°μ κ°λ
class Restaurant
{
public:
int steakCost;
};
class YeSeul {
public:
void Move(); // μ μΈ
int Eat(int);
int Eat2(int&);
int Eat3(int steakCost3);
int Eat4(int steakCost3, int coffeeCost, int iceCost);
};
void YeSeul::Move() // μ μ
{
cout << "μμ¬μ΄λ λ¬λ¦°λ€" << endl;
}
int YeSeul::Eat(int steakCost2)
{
steakCost2 = 10000;
return steakCost2;
}
int YeSeul::Eat2(int& steakCost2)
{
steakCost2 = 10000;
return steakCost2;
}
int YeSeul::Eat3(int steakCost3)
{
cout << "μμ¬μ΄λ " << steakCost3 << "μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήλλ€" << endl;
return steakCost3;
}
int YeSeul::Eat4(int steakCost3, int coffeeCost, int iceCost)
{
cout << "μμ¬μ΄λ " << steakCost3 << "μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήκ³ , " <<
coffeeCost << "μμ§λ¦¬ 컀νΌλ₯Ό λ§μκ³ , " <<
iceCost << "μμ§λ¦¬ μμ΄μ€ν¬λ¦Όμ λ¨Ήλλ€." << endl;
return steakCost3;
}
int main()
{
YeSeul player;
Restaurant rest, rest2;
rest.steakCost = 20000;
rest2.steakCost = 20000;
// rest
cout << "μμ¬μ΄λ " << player.Eat(rest.steakCost) <<
"μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήμλ€κ³ κ±°μ§λ§ νλ€." << endl;
cout << "λ μ€ν λμ μμ¬μ΄κ° " << rest.steakCost <<
"μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήμλ€κ³ μκ³ μλ€." << endl;
// rest2
cout << "μμ¬μ΄λ " << player.Eat2(rest.steakCost) <<
"μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήμλ€κ³ κ±°μ§λ§ νλ€." << endl;
cout << "λ μ€ν λμ μμ¬μ΄κ° " << rest.steakCost <<
"μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήμλ€κ³ μκ³ μλ€." << endl;
// λ§€κ°λ³μ
player.Eat3(30000);
player.Eat4(43333, 3000, 1000);
}
// main -> int YeSeul::Eat(int steakCost)ν¨μ μ€ν -> main
// rest μ€ν - κ°μ μν νΈμΆ
// ν¨μ νΈμΆ -> μ€ν
μ΄ν¬ κ°κ²©μ΄ λ§€κ°λ³μλ‘ λ€μ΄κ°. κ°μ μν νΈμΆ λ°©μ
// rest2 μ€ν - μ°Έμ‘°μ μν νΈμΆ
// ν¨μ νΈμΆ -> λ§€κ°λ³μλ₯Ό μ€ν
μ΄ν¬ κ°κ²©μΌλ‘ μ΄κΈ°ν,
// μ°Έμ‘°μμμΌλ‘ λ¨μν κ°μ 볡μ¬νλ κ²μ΄ μλ μ£Όμλ₯Ό μ°Έμ‘°νμ¬
// Eat2 ν¨μμ streakCostλ rest2μ steakCost λ³μμ λ³μΉμ΄ λλ€.
// λ°λΌ λ λ³μ μ€ νλλΌλ κ°μ λ³κ²½νκ² λλ©΄ μ€ν
μ΄ν¬ κ°μ΄ λ³κ²½ λ¨
// μ°Έμ‘°μ μν νΈμΆ λ°©μμ ν¨μ λ΄λΆμμ μΈλΆμ κ°μ λ³κ²½ν μ μλ€ (λ§€μ° μ€μ)
// λ§€κ°λ³μλ₯Ό μ¬λ¬ κ° λ§λ€ μ μλ€.
#include <iostream>
using namespace std;
// ** ν¨μ μ€λ²λ‘λ©
// overloading : μ§μ λ§μ΄ μ£λλ€
// C++μ μ€μν κ°λ
, λ€νμ±κ³Ό λ°μ νκΈ°μ
// μ€μν κ°λ
μ΄λ€
// νλμ ν¨μμ κ³μ μλλ€
// μ°λ¦¬κ° μ§κΈκΉμ§ νλ κ²μ μ΄λ¦μ λμΌνκ² λ§λ€μ
// λ¨ λ§€κ°λ³μ λͺ©λ‘μ λ¬λΌμΌ νλ€. (μ°Έμ‘°μΈ κ²½μ° -> νμ
μ΄ κ°μΌλ©΄ x)
class Restaurant
{
public:
int steakCost;
};
class YeSeul {
public:
void Move(); // μ μΈ
int Eat(int);
double Eat(double);
int Eat(int steakCost3, int coffeeCost, int iceCost);
};
void YeSeul::Move() // μ μ
{
cout << "μμ¬μ΄λ λ¬λ¦°λ€" << endl;
}
int YeSeul::Eat(int steakCost3)
{
cout << "μμ¬μ΄λ " << steakCost3 << "μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήλλ€" << endl;
return steakCost3;
}
double YeSeul::Eat(double steakCost3)
{
cout << "μμ¬μ΄λ " << steakCost3 << "μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήλλ€" << endl;
return steakCost3;
}
int YeSeul::Eat(int steakCost3, int coffeeCost, int iceCost)
{
cout << "μμ¬μ΄λ " << steakCost3 << "μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήκ³ , " <<
coffeeCost << "μμ§λ¦¬ 컀νΌλ₯Ό λ§μκ³ , " <<
iceCost << "μμ§λ¦¬ μμ΄μ€ν¬λ¦Όμ λ¨Ήλλ€." << endl;
return steakCost3;
}
int main()
{
YeSeul player;
Restaurant rest, rest2;
rest.steakCost = 20000;
rest2.steakCost = 20000;
// rest
cout << "μμ¬μ΄λ " << player.Eat(rest.steakCost) <<
"μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήμλ€κ³ κ±°μ§λ§ νλ€." << endl;
cout << "λ μ€ν λμ μμ¬μ΄κ° " << rest.steakCost <<
"μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήμλ€κ³ μκ³ μλ€." << endl;
// λ§€κ°λ³μ
player.Eat(30000);
player.Eat(30000.0);
player.Eat(43333, 3000, 1000);
}
< μΈλΌμΈ(inline) ν¨μ >
#include <iostream>
using namespace std;
// * inline ν¨μ
// μ₯μ : ν¨μ μ μλΆκ° μ€ν μ½λλ₯Ό λ체 νλ―λ‘, μ€ν μ μ€λ²ν€λκ° μ€μ΄ μλ λΉ λ¦
// λ¨μ : ν¨μ μ μλΆκ° κΈΈλ©΄ μΈλΌμΈ ν¨μλ₯Ό μ¬μ©νμ¬ μ»μ μ μλ μ₯μ μ€μ΄λ¦
// (νΈμΆνλ κ΅¬λ¬Έμ΄ λͺ¨λ μΈλΌμΈ ν¨μμ μ μλ‘ λ°λμ΄ μ 체 μ½λ μμ΄ μ¦κ°ν¨)
class YeSeul {
public:
void Eat(int);
inline void EatInline(int steakCost3)
{
cout << "EatInline() :: μμ¬μ΄λ " << steakCost3 << "μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήλλ€" << endl;
}
};
void YeSeul::Eat(int steakCost3)
{
cout << "Eat() :: μμ¬μ΄λ " << steakCost3 << "μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήλλ€" << endl;
}
int main()
{
YeSeul player;
player.Eat(500); // μλλ°©μ λ³΅μ‘ ) main -> eatν¨μ -> ν¨μ μ€ν -> main
player.EatInline(1500); // (ν¨μ νΈμΆ λ¨κ³ μ€μ) μ½λ λμ²΄λ¨ ) cout << "EatInline() :: μμ¬μ΄λ " << ....
}
< λλ€ ν¨μ >
#include <iostream>
using namespace std;
// * λλ€ ν¨μ
// 볡μ‘ν ν¨μ νΈμΆ κ³Όμ μλ΅ν΄ μκ° μ μ½ λ° κ°λ
μ± UP
// : μΈλΌμΈμΌλ‘ μ μμ νΈμΆμ ν λ²μ νλ ν¨μ
// [μΊ‘μ²] (λ§€κ°λ³μ λͺ©λ‘) mutable μμΈλͺ©λ‘ -> λ°νν {ν¨μ λͺΈμ²΄}
class YeSeul {
public:
void Eat(int);
inline void EatInline(int steakCost3)
{
cout << "EatInline() :: μμ¬μ΄λ " << steakCost3 << "μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήλλ€" << endl;
}
};
void YeSeul::Eat(int steakCost3)
{
cout << "Eat() :: μμ¬μ΄λ " << steakCost3 << "μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήλλ€" << endl;
}
int main()
{
YeSeul player;
player.Eat(500);
player.EatInline(1500);
[](int steakCost3) {
cout << "eatLamda():: μμ¬μ΄λ " << steakCost3 << "μμ§λ¦¬ μ€ν
μ΄ν¬λ₯Ό λ¨Ήλλ€" << endl;}(1000);
}
< Class >
#include <iostream>
using namespace std;
#define NAME_LEN 20
#define SEX_LEN 10
#define JOB_LEN 20
#define CHARACTER_LEN 20
// 03. Class
// λ°μ΄ν° μλ (ꡬ쑰체μ λ€λ₯Έ μ -> μλ κ·Έλ₯ λͺ¨λ κ² public)
// : ν΄λμ€ μμ μμ±κ³Ό κΈ°λ₯μ μ νμ μΌλ‘ μ¨κΈΈ μ μλ€
// μ¨κΈ°λ μ΄μ : μμ μ μμ±κ³Ό κΈ°λ₯μ λ€λ₯Έ μμμμ λ³κ²½νμ§ λͺ»νλλ‘ ν΄μΌνλ κ²½μ°κ° μλ€
// λ©€λ² μ κ·Ό μ§μ μ
// public : ν΄λμ€ λ΄λΆ, μΈλΆ λͺ¨λ λ©€λ²μ μ κ·Ό κ°λ₯ν¨ -> μΈν°νμ΄μ€ ν¨μ
// private : ν΄λμ€ λ΄λΆμμλ§ λ©€λ²μ μ κ·Ό κ°λ₯ν¨ -> λ³΄ν΅ λ©€λ² λ³μ
// protected : κΈ°λ³Έμ μΌλ‘ ν΄λμ€ λ΄λΆ μμμμλ§ ν΄λμ€ λ©€λ²μ μ κ·Ό κ°λ₯νλ,
// μμκ΄κ³μμλ μμ ν΄λμ€ λ©€λ²μ μ κ·Ό κ°λ₯νλλ‘ νλ€.
// κ°μ²΄λ₯Ό λΆμ΄λΉ΅ νμ²λΌ μ°μ΄λΌ μ μμΌλ©°
// μ΄λ€μ μλ‘ μνΈμμ© ν μ μμ
class Person {
public:
// μμ±μμ κ°μ μν , μΆνμ λ°°μΈ μμ
void constructor(const char* name, const char* sex, const char* job, const char* character, int age, bool marriageStatus)
{
strcpy_s(this->name, name);
strcpy_s(this->sex, sex);
strcpy_s(this->job, job);
strcpy_s(this->character, character);
this->age = age;
this->marriageStatus = marriageStatus;
// μμ μ κ°λ₯΄ν€λ ν¬μΈν° (this) : μΆν λ°°μΈ μμ
}
void introduce()
{
cout << "μ΄λ¦: " << name << endl;
cout << "μ±λ³: " << sex << endl;
cout << "μ§μ
: " << job << endl;
cout << "μ±κ²©: " << character << endl;
cout << "λμ΄: " << age << endl;
cout << "κ²°νΌμ¬λΆ: " << (marriageStatus ? "YES" : "NO") << endl;
}
void eat(const char* food)
{
cout << name << "μ(λ) " << food << "λ₯Ό λ¨Ήλλ€" << endl;
}
void sleep()
{
cout << name << "μ(λ) μλ€" << endl;
}
void drive(const char* destination)
{
cout << name << "μ(λ)" << destination << "μΌλ‘ μ΄μ νλ€" << endl;
}
void write()
{
cout << name << "μ(λ) μ±
μ μ΄λ€" << endl;
}
void read()
{
cout << name << "μ(λ) μ±
μ μ½λλ€" << endl;
}
private:
char name[NAME_LEN];
char sex[SEX_LEN];
char job[JOB_LEN];
char character[CHARACTER_LEN];
int age;
bool marriageStatus;
};
int main()
{
Person player1, player2;
player1.constructor("λ―Έμ", "μ¬μ±", "μ½λ©λ
Έμ", "κ³ μ§", 23, false);
player2.constructor("λ°λ³΄", "λ¨μ±", "νμ", "μ±μ€", 23, true);
player1.introduce();
player2.introduce();
player1.eat("λ§λΌν");
}
#include <iostream>
using namespace std;
#define NAME_LEN 20
#define SEX_LEN 10
#define JOB_LEN 20
#define CHARACTER_LEN 20
// 03. Class
// λ©€λ²ν¨μ μ μΈκ³Ό μ μ λΆλ¦¬
// :: (λ²μ μ§μ μ°μ°μ) μ¬μ©
class Person {
public:
void constructor(const char* name, const char* sex, const char* job, const char* character, int age, bool marriageStatus);
void introduce();
void eat(const char* food);
void sleep();
void drive(const char* destination);
void write();
void read();
private:
char name[NAME_LEN];
char sex[SEX_LEN];
char job[JOB_LEN];
char character[CHARACTER_LEN];
int age;
bool marriageStatus;
};
int main()
{
Person player1, player2;
player1.constructor("λ―Έμ", "μ¬μ±", "μ½λ©λ
Έμ", "κ³ μ§", 23, false);
player2.constructor("λ°λ³΄", "λ¨μ±", "νμ", "μ±μ€", 23, true);
player1.introduce();
player2.introduce();
player1.eat("λ§λΌν");
}
void Person::constructor(const char* name, const char* sex, const char* job, const char* character, int age, bool marriageStatus)
{
strcpy_s(this->name, name);
strcpy_s(this->sex, sex);
strcpy_s(this->job, job);
strcpy_s(this->character, character);
this->age = age;
this->marriageStatus = marriageStatus;
// μμ μ κ°λ₯΄ν€λ ν¬μΈν° (this) : μΆν λ°°μΈ μμ
}
void Person::introduce()
{
cout << "μ΄λ¦: " << name << endl;
cout << "μ±λ³: " << sex << endl;
cout << "μ§μ
: " << job << endl;
cout << "μ±κ²©: " << character << endl;
cout << "λμ΄: " << age << endl;
cout << "κ²°νΌμ¬λΆ: " << (marriageStatus ? "YES" : "NO") << endl;
}
void Person::eat(const char* food)
{
cout << name << "μ(λ) " << food << "λ₯Ό λ¨Ήλλ€" << endl;
}
void Person::sleep()
{
cout << name << "μ(λ) μλ€" << endl;
}
void Person::drive(const char* destination)
{
cout << name << "μ(λ)" << destination << "μΌλ‘ μ΄μ νλ€" << endl;
}
void Person::write()
{
cout << name << "μ(λ) μ±
μ μ΄λ€" << endl;
}
void Person::read()
{
cout << name << "μ(λ) μ±
μ μ½λλ€" << endl;
}