I. μ°μ°μ μ€λ²λ‘λ©μ κΈ°λ³Έ κ°λ
μ°μ°μ μ€λ²λ‘λ©μ νλ‘κ·Έλλ° μΈμ΄μμ νΉμ μ°μ°μμ λμμ μ¬μ©μκ° μ μν κ°μ²΄λ λ°μ΄ν° νμ μ λ§κ² λ³κ²½νλ κ²μ μλ―Έν©λλ€. μΌλ°μ μΌλ‘, νλ‘κ·Έλλ° μΈμ΄λ μ¬μ μ μ μλ μ°μ°μλ€μ λν΄ νΉμ κ·μΉκ³Ό λμ λ°©μμ΄ μ ν΄μ Έ μμ΅λλ€. κ·Έλ¬λ μ°μ°μ μ€λ²λ‘λ©μ ν΅ν΄ μ¬μ©μλ κΈ°μ‘΄μ μ μλ μ°μ°μμ λμμ 컀μ€ν°λ§μ΄μ¦νμ¬ μμ μ κ°μ²΄λ λ°μ΄ν° νμ μ λ§λ μ°μ°μ μνν μ μκ² λ©λλ€.
μ°μ°μ μ€λ²λ‘λ©μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μΈμ΄μμ λ§€μ° κ°λ ₯νκ³ μ μ©νλ©°, μ½λμ κ°λ μ±κ³Ό νμ₯μ±μ ν₯μμν΅λλ€. μ¬μ μ μ μλ μ°μ°μλ₯Ό νλμ λͺ©μ μ λ§κ² μ¬μ©ν μ μμΌλ―λ‘ μ½λλ₯Ό λ³΄λ€ μ§κ΄μ μ΄κ³ μμ°μ€λ½κ² λ§λ€ μ μμ΅λλ€. λν, μ°μ°μ μ€λ²λ‘λ©μ ν΅ν΄ μ¬μ©μκ° μ μν ν΄λμ€λ λ°μ΄ν° νμ μ κΈ°μ‘΄μ λ΄μ₯λ μ°μ°μλ€κ³Ό μ μ¬νκ² λμνλλ‘ λ§λ€ μ μμ΄ ν¨μ¨μ μΈ κ°λ°μ κ°λ₯νκ² ν©λλ€.
μλ₯Ό λ€μ΄, μ¬μ©μκ° μ μν ν΄λμ€μ λν΄ λ§μ μ°μ°μ μννκ³ μ νλ€κ³ κ°μ ν΄λ΄ μλ€. κΈ°μ‘΄μλ λ§μ μ°μ°μ μν λ©μλλ₯Ό μ μνκ³ λ€λ₯Έ λ°©μμΌλ‘ μ¬μ©ν΄μΌ νμ§λ§, μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©νλ©΄ λ€μκ³Ό κ°μ΄ λ§μ μ°μ°μ κ°νΈνκ² μνν μ μμ΅λλ€.
class MyClass {
int value;
public:
MyClass(int val) : value(val) {}
MyClass operator+(const MyClass& other) const {
return MyClass(value + other.value);
}
};
int main() {
MyClass obj1(5);
MyClass obj2(10);
MyClass result = obj1 + obj2; // μ°μ°μ μ€λ²λ‘λ©
return 0;
}
μμ μμμμλ +
μ°μ°μλ₯Ό μ¬μ©νμ¬ obj1
κ³Ό obj2
μ κ°μ λν λ€, κ²°κ³Όκ°μ result
μ μ μ₯ν©λλ€. μ΄λ κ² μ°μ°μ μ€λ²λ‘λ©μ ν΅ν΄ μ°λ¦¬λ λ§μΉ κΈ°λ³Έ λ°μ΄ν° νμ
μΈ κ²μ²λΌ μ¬μ©μ μ μ ν΄λμ€μ λν μ°μ°μ μνν μ μλ κ²μ
λλ€. μ΄λ λ§€μ° νΈλ¦¬νλ©΄μλ κ°λ
μ±μ΄ μ’μ μ½λλ₯Ό μμ±ν μ μκ² ν΄μ£Όλ μ€μν κΈ°λ₯μ
λλ€.
II. μ°μ°μ μ€λ²λ‘λ©μ μν λ¬Έλ²κ³Ό κ·μΉ
C++μμ μ°μ°μ μ€λ²λ‘λ©μ μν΄ λ€μκ³Ό κ°μ λ¬Έλ²κ³Ό κ·μΉμ λ°λ¦ λλ€.
1. μ°μ°μ μ€λ²λ‘λ© ν¨μμ μ μ
μ°μ°μ μ€λ²λ‘λ© ν¨μλ μ°μ°μ κΈ°νΈ μμ operator
ν€μλλ₯Ό λΆμΈ ν, ν΄λΉ μ°μ°μμ κΈ°νΈλ₯Ό ν¨μ μ΄λ¦μ μΆκ°νμ¬ μ μν©λλ€. μλ₯Ό λ€μ΄, +
μ°μ°μμ μ€λ²λ‘λ© ν¨μλ operator+
λ‘ μ μλ©λλ€.
2. μ°μ°μ μ€λ²λ‘λ© ν¨μμ 맀κ°λ³μ
μ°μ°μ μ€λ²λ‘λ© ν¨μμ 맀κ°λ³μλ ν΄λΉ μ°μ°μκ° μ μ©λλ λ κ°μ²΄λ λ°μ΄ν° νμ μ λ°μμΌ ν©λλ€. μλ₯Ό λ€μ΄, λ§μ μ°μ°μ μ€λ²λ‘λ©νλ κ²½μ°, λ§μ μ°μ°μ μ€λ²λ‘λ© ν¨μλ λ€μκ³Ό κ°μ ννλ‘ μ μλ©λλ€.
ReturnType operator+(const ClassName& obj1, const ClassName& obj2) {
// μ°μ° μν λ° κ²°κ³Ό λ°ν
}
3. μ°μ°μ μ€λ²λ‘λ© ν¨μμ λ°νκ°
μ°μ°μ μ€λ²λ‘λ© ν¨μλ ν΄λΉ μ°μ°μ κ²°κ³Όλ₯Ό λ°νν΄μΌ ν©λλ€. λ°νκ°μ ν΄λΉ μ°μ°μκ° μνν κ²°κ³Όλ₯Ό λνλ΄λ λ°μ΄ν° νμ μ΄μ΄μΌ ν©λλ€. μλ₯Ό λ€μ΄, λ κ°μ κ°μ²΄λ₯Ό λνλ κ²½μ° μ°μ° κ²°κ³Όλ‘ κ°μ²΄λ₯Ό λ°νν©λλ€.
4. ν΄λμ€μ μ°μ°μ μ€λ²λ‘λ© ν¨μμ ꡬλΆ
μ°μ°μ μ€λ²λ‘λ© ν¨μλ ν΄λΉ μ°μ°μ΄ μνλλ ν΄λμ€μ λ©€λ² ν¨μλ‘ μ μν μλ μκ³ , ν΄λμ€ μΈλΆμ μ μ ν¨μλ‘ μ μν μλ μμ΅λλ€. λ©€λ² ν¨μλ‘ μ μνλ κ²½μ°, μ°μ°μ μ€λ²λ‘λ© ν¨μλ ν΄λΉ ν΄λμ€μ λ©€λ² λ³μμ μ§μ μ κ·Όν μ μμ΅λλ€. μ μ ν¨μλ‘ μ μνλ κ²½μ°, μ°μ°μ μ€λ²λ‘λ© ν¨μλ ν΄λμ€μ λ©€λ² λ³μμ μ κ·ΌνκΈ° μν΄ λ§€κ°λ³μλ‘ ν΄λΉ ν΄λμ€μ κ°μ²΄λ₯Ό λ°μμμΌ ν©λλ€.
μ°μ°μ μ€λ²λ‘λ© ν¨μμ μ μ λ°©μμ λ€λ₯Έ λ©€λ² ν¨μμ λμΌν λ°©λ²μΌλ‘ ꡬνλ©λλ€. ν΄λμ€ λ΄λΆμμ ν¨μ μ μλ₯Ό νκ² λλ©΄, ν΄λΉ ν¨μλ μλμΌλ‘ μΈλΌμΈ ν¨μλ‘ μ²λ¦¬λ©λλ€.
μμ λ¬Έλ²κ³Ό κ·μΉμ λ°λΌ C++μμλ μ¬μ©μ μ μ ν΄λμ€λ λ°μ΄ν° νμ μ λν΄ λ€μν μ°μ°μλ₯Ό μ€λ²λ‘λ©νμ¬ μ¬μ©ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ μ½λλ₯Ό λμ± μ§κ΄μ μ΄κ³ ν¨μ¨μ μΌλ‘ μμ±ν μ μμ΅λλ€.
III. μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©νλ μ΄μ
μ°μ°μ μ€λ²λ‘λ©μ νλ‘κ·Έλλ° μΈμ΄μμ μ€μνκ³ λ§€μ° μ μ©ν κΈ°λ₯μ λλ€. λ€μμ μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©νλ μ΄μ μ λν μ€λͺ μ λλ€.
1. κ°λ μ±
μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©νλ©΄ μ¬μ©μλ κΈ°μ‘΄μ μκ³ μλ μ°μ°μλ₯Ό μ¬μ©νμ¬ κ°μ²΄λ λ°μ΄ν° νμ κ°μ μ°μ°μ μνν μ μμ΅λλ€. μ΄λ μ½λμ κ°λ μ±μ ν¬κ² ν₯μμν΅λλ€. κΈ°μ‘΄μ μ μλ μ°μ°μμ μλ―Έμ λμ λ°©μμ μ΄λ―Έ μκ³ μλ μ¬μ©μλ μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©νλ μ½λλ₯Ό μ½κ³ μ΄ν΄νκΈ° μ½κ³ κ°νΈν©λλ€.
2. ν¨μ¨μ±
μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©νλ©΄ μ¬μ©μλ κΈ°μ‘΄μ μ°μ°μλ₯Ό νμ©νμ¬ ν¨μ¨μ μΈ μ½λλ₯Ό μμ±ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, κΈ°μ‘΄ μ°μ°μκ° μ 곡νλ λ΄λΆμ μΈ μ΅μ ν κΈ°λ²λ€μ νμ©ν μ μμ΅λλ€. λν, μ°μ°μ μ€λ²λ‘λ©μ ν΅ν΄ μ¬μ©μ μ μ ν΄λμ€λ λ°μ΄ν° νμ μ λ§λ μ°μ°μ μννκΈ° λλ¬Έμ λΆνμν μμ μ νΌνκ³ ν¨μ¨μ μΈ μ°μ°μ μνν μ μμ΅λλ€.
3. νμ₯μ±
μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©μκ° μ μν ν΄λμ€λ λ°μ΄ν° νμ μ λν μ°μ°μ μ§μνμ¬ μ½λμ νμ₯μ±μ λμ¬μ€λλ€. κΈ°μ‘΄μ μ μλ μ°μ°μλ‘ μ¬μ©μκ° μνλ λμμ μνν μ μκΈ° λλ¬Έμ, κΈ°μ‘΄ μ½λλ₯Ό μμ νμ§ μκ³ λ μλ‘μ΄ μ°μ°μ μΆκ°νκ±°λ κΈ°μ‘΄ μ°μ°μ λμμ λ³κ²½ν μ μμ΅λλ€. μ΄λ μ½λμ μ μ§λ³΄μ λ° κ°μ μ μ©μ΄νκ² ν©λλ€.
4. μμ°μ€λ¬μ΄ κ°μ²΄ μ¬μ©
μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©νλ©΄ μ¬μ©μ μ μ ν΄λμ€λ λ°μ΄ν° νμ μ κΈ°μ‘΄μ λ΄μ₯λ λ°μ΄ν° νμ κ³Ό μ μ¬νκ² μ¬μ©ν μ μμ΅λλ€. μ¦, μ¬μ©μλ μ¬μ©μ μ μ ν΄λμ€λ λ°μ΄ν° νμ μ λ§μΉ λ΄μ₯λ λ°μ΄ν° νμ μ²λΌ μ¬μ©ν μ μμ΅λλ€. μ΄λ μμ°μ€λ½κ³ μ§κ΄μ μΈ μ½λλ₯Ό μμ±ν μ μκ² ν©λλ€.
μ°μ°μ μ€λ²λ‘λ©μ μ½λμ κ°λ μ±κ³Ό ν¨μ¨μ±μ ν₯μμν€λ©°, μ½λμ νμ₯μ±κ³Ό μ μ§λ³΄μμ±μ κ°νμμΌμ€λλ€. λ°λΌμ μ°μ°μ μ€λ²λ‘λ©μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μΈμ΄μμ λ§€μ° μ€μν κ°λ μ΄λ©°, μ¬μ©μκ° κ°μ²΄λ λ°μ΄ν° νμ μ λν μ°μ°μ κ°λ¨νκ³ ν¨κ³Όμ μΌλ‘ μ²λ¦¬ν μ μλλ‘ ν΄μ€λλ€.
IV. μ°μ°μ μ€λ²λ‘λ©μ μ₯μ κ³Ό λ¨μ
μ°μ°μ μ€λ²λ‘λ©μ νλ‘κ·Έλλ° μΈμ΄μμ λ§μ μ΄μ μ μ 곡νμ§λ§, λμμ λͺ κ°μ§ λ¨μ λ κ°μ§κ³ μμ΅λλ€. λ€μμ μ°μ°μ μ€λ²λ‘λ©μ μ₯μ κ³Ό λ¨μ μ λν μ€λͺ μ λλ€.
1. μ₯μ
1-1. μ½λ κ°λ μ±
μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©νλ©΄ κΈ°μ‘΄μ μκ³ μλ μ°μ°μλ₯Ό νμ©νμ¬ μ½λλ₯Ό μμ±ν μ μμ΅λλ€. μ΄λ μ½λμ κ°λ μ±μ ν₯μμν΅λλ€. κΈ°μ‘΄μ μ°μ°μλ₯Ό μ¬μ©νλ―λ‘, μ΄λ―Έ μκ³ μλ κΈ°λ₯κ³Ό λμ λ°©μμ λ°νμΌλ‘ μ½λλ₯Ό μ½κ³ μ΄ν΄νκΈ° μ½μ΅λλ€.
1-2. ν¨μ¨μ±
μ°μ°μ μ€λ²λ‘λ©μ ν΅ν΄ μ¬μ©μλ κΈ°μ‘΄ μ°μ°μκ° μ 곡νλ λ΄λΆ μ΅μ ν κΈ°λ²λ€μ νμ©ν μ μμ΅λλ€. λν, μ€λ²λ‘λ© ν¨μλ₯Ό μ¬μ©νμ¬ μ¬μ©μ μ μ ν΄λμ€λ λ°μ΄ν° νμ μ νΉνλ μ°μ°μ μνν μ μμ΅λλ€. μ΄λ‘ μΈν΄ ν¨μ¨μ μΈ μ½λλ₯Ό μμ±ν μ μμ΅λλ€.
1-3. νμ₯μ±
μ°μ°μ μ€λ²λ‘λ©μ μ½λμ νμ₯μ±μ λμ¬μ€λλ€. μ¬μ©μλ κΈ°μ‘΄μ μ°μ°μλ₯Ό μ¬μ μν¨μΌλ‘μ¨ μλ‘μ΄ μ°μ°μ μΆκ°νκ±°λ κΈ°μ‘΄ μ°μ°μ λμμ λ³κ²½ν μ μμ΅λλ€. μ΄λ μ½λμ μ μ§λ³΄μ λ° κ°μ μ μ©μ΄νκ² ν΄μ€λλ€.
1-4. κ°μ²΄ μ¬μ©μ μμ°μ€λ¬μ
μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©νλ©΄ μ¬μ©μ μ μ ν΄λμ€λ λ°μ΄ν° νμ μ λ§μΉ λ΄μ₯λ λ°μ΄ν° νμ μ²λΌ μ¬μ©ν μ μμ΅λλ€. μ΄λ μ¬μ©μμκ² κ°μ²΄ μ¬μ©μ μμ°μ€λ¬μκ³Ό μ§κ΄μ±μ μ 곡ν©λλ€.
2. λ¨μ
2-1. μ€μ©μ κ°λ₯μ±
μ°μ°μ μ€λ²λ‘λ©μ λ¨μ©νλ©΄ μ½λλ₯Ό μ΄ν΄νκΈ° μ΄λ €μμ§ μ μμ΅λλ€. μλ₯Ό λ€μ΄, μ°μ°μλ₯Ό μ©λμ λ§μ§ μκ² μ€λ²λ‘λ©νλ©΄ μ½λμ μλμ λ€λ₯Έ κ²°κ³Όλ₯Ό μ΄λν μ μμ΅λλ€. λ°λΌμ μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©ν λλ μ μ€νκ² μ¬μ©ν΄μΌ ν©λλ€.
2-2. νΌλμ±
μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©νλ©΄ κΈ°μ‘΄ μ°μ°μμ μλ―Έκ° λ³κ²½λλ―λ‘, κ°λ°μκ° κΈ°μ‘΄ μ°μ°μμ μλ―Έλ₯Ό μ€ν΄ν μ μμ΅λλ€. μ΄λ μ½λμ μ΄ν΄λ₯Ό μ΄λ ΅κ² λ§λ€ μ μμ΅λλ€. λ°λΌμ μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©ν λλ μ£Όμμ΄λ λ¬Έμνλ₯Ό ν΅ν΄ λͺ νν μ€λͺ μ μ 곡ν΄μΌ ν©λλ€.
2-3. νμ΅ λΉμ©
μ°μ°μ μ€λ²λ‘λ©μ C++μ κ³ κΈ κΈ°λ₯ μ€ νλμ΄λ―λ‘, νμ΅ λΉμ©μ΄ λ°μν μ μμ΅λλ€. μ°μ°μ μ€λ²λ‘λ©μ μ¬λ°λ₯΄κ² μ¬μ©νκΈ° μν΄μλ μΈμ΄μ κΈ°λ³Έ κ°λ κ³Ό λ¬Έλ²μ λν μ΄ν΄κ° νμν©λλ€. λ°λΌμ μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©νλ €λ©΄ νμ΅μ μκ°κ³Ό λ Έλ ₯μ΄ νμν μ μμ΅λλ€.
μ°μ°μ μ€λ²λ‘λ©μ μ½λμ κ°λ μ±κ³Ό ν¨μ¨μ±μ λμ¬μ£Όλ©°, κ°μ²΄ μ¬μ©μ μμ°μ€λ¬μκ³Ό νμ₯μ±μ μ 곡ν©λλ€. κ·Έλ¬λ μ€μ©μ κ°λ₯μ±κ³Ό νΌλμ±, κ·Έλ¦¬κ³ νμ΅ λΉμ©μ΄ μλ κ²μ΄ μ°μ°μ μ€λ²λ‘λ©μ λ¨μ μ λλ€. λ°λΌμ μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©ν λλ μ μ€ν΄μΌ νλ©°, μ½λμ κ°λ μ±κ³Ό μ΄ν΄λλ νμ μ΅μ°μ κ³ λ €μ¬νμ΄ λμ΄μΌ ν©λλ€.
V. μ°μ°μ μ€λ²λ‘λ©μ μμ λ° νμ© λ°©λ²
μ°μ°μ μ€λ²λ‘λ©μ λ€μν μν©μμ νμ©λ μ μμ΅λλ€. λ€μμ μ°μ°μ μ€λ²λ‘λ©μ λͺ κ°μ§ μμμ νμ© λ°©λ²μ λν μ€λͺ μ λλ€.
1. μ°μ μ°μ°μμ μ€λ²λ‘λ©
μ°μ μ°μ°μ (λ§μ
, λΊμ
, κ³±μ
λ±) λ₯Ό μ€λ²λ‘λ©νμ¬ μ¬μ©μ μ μ λ°μ΄ν° νμ
μ λ§λ μ°μ°μ μνν μ μμ΅λλ€. μλ₯Ό λ€μ΄, λΆμλ₯Ό νννλ ν΄λμ€ Fractionμ΄ μλ€κ³ κ°μ ν΄λ³΄κ² μ΅λλ€. μ΄λ, λ κ°μ Fraction κ°μ²΄λ₯Ό λνλ €λ©΄ +
μ°μ°μλ₯Ό μ€λ²λ‘λ©νμ¬ λ λΆμλ₯Ό λν κ²°κ³Όλ₯Ό λ°ννλλ‘ μ μν μ μμ΅λλ€.
class Fraction {
private:
int numerator;
int denominator;
public:
Fraction(int num, int denom) : numerator(num), denominator(denom) {}
Fraction operator+(const Fraction& other) {
int resultNum = numerator * other.denominator + denominator * other.numerator;
int resultDenom = denominator * other.denominator;
return Fraction(resultNum, resultDenom);
}
};
μ μ½λμμ operator+
ν¨μλ λ κ°μ Fraction κ°μ²΄λ₯Ό λ°μμ λν κ²°κ³Όλ₯Ό λ°νν©λλ€. μ΄λ κ² μ€λ²λ‘λ©λ +
μ°μ°μλ₯Ό μ¬μ©νλ©΄, Fraction κ°μ²΄λ€μ λν λ μΌλ°μ μΈ μ°μ μ°μ°κ³Ό κ°μ λ°©μμΌλ‘ μ½λλ₯Ό μμ±ν μ μμ΅λλ€.
2. λΉκ΅ μ°μ°μμ μ€λ²λ‘λ©
λΉκ΅ μ°μ°μ (λ±νΈ, λΆλ±νΈ, ν¬κΈ° λΉκ΅ λ±) λ₯Ό μ€λ²λ‘λ©νμ¬ κ°μ²΄κ°μ λΉκ΅λ₯Ό μνν μ μμ΅λλ€. μλ₯Ό λ€μ΄, μ¬μ©μ μ μ ν΄λμ€μΈ Pointκ° μλ€κ³ κ°μ ν΄λ³΄κ² μ΅λλ€. μ΄λ, λ Point κ°μ²΄μ μμΉλ₯Ό λΉκ΅νκΈ° μν΄ ==
μ°μ°μλ₯Ό μ€λ²λ‘λ©νμ¬ μ μν μ μμ΅λλ€.
class Point {
private:
int x;
int y;
public:
Point(int xCoord, int yCoord) : x(xCoord), y(yCoord) {}
bool operator==(const Point& other) {
return (x == other.x) && (y == other.y);
}
};
μ μ½λμμ operator==
ν¨μλ λ κ°μ Point κ°μ²΄λ₯Ό λ°μμ μ’νκ° λμΌνμ§λ₯Ό νλ³ν©λλ€. μ΄λ κ² μ€λ²λ‘λ©λ ==
μ°μ°μλ λ
Όλ¦¬μ μΌλ‘ κ°μ²΄λ₯Ό λΉκ΅νμ¬ λμΌνμ§λ₯Ό νλ³νλλ° μ¬μ©ν μ μμ΅λλ€.
3. μ€νΈλ¦Ό μ°μ°μμ μ€λ²λ‘λ©
μ€νΈλ¦Ό μ°μ°μ (μ
μΆλ ₯ μ°μ°μ) λ₯Ό μ€λ²λ‘λ©νμ¬ μ¬μ©μ μ μ κ°μ²΄μ μ
μΆλ ₯μ μ²λ¦¬ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, μ¬μ©μ μ μ ν΄λμ€μΈ Bookμ΄ μλ€κ³ κ°μ ν΄λ³΄κ² μ΅λλ€. μ΄λ, <<
μ°μ°μλ₯Ό μ€λ²λ‘λ©νμ¬ Book κ°μ²΄μ μ 보λ₯Ό μΆλ ₯ν μ μμ΅λλ€.
class Book {
private:
string title;
string author;
int year;
public:
// μλ΅
friend ostream& operator<<(ostream& os, const Book& book) {
os << "Title: " << book.title << endl;
os << "Author: " << book.author << endl;
os << "Year: " << book.year << endl;
return os;
}
};
μ μ½λμμ operator<<
ν¨μλ Book κ°μ²΄μ μ 보λ₯Ό μΆλ ₯νκΈ° μν΄ μ¬μ©λ©λλ€. ostream
ν΄λμ€μ μ°λλμ΄ Book κ°μ²΄μ μ 보λ₯Ό νμ€ μΆλ ₯μΌλ‘ μ λ¬ν©λλ€. μ΄λ κ² μ€λ²λ‘λ©λ <<
μ°μ°μλ₯Ό μ¬μ©νλ©΄, Book κ°μ²΄μ μ 보λ₯Ό μ½κ² μΆλ ₯ν μ μμ΅λλ€.
μ°μ°μ μ€λ²λ‘λ©μ μμλ‘λ μ°μ μ°μ°μ, λΉκ΅ μ°μ°μ, μ€νΈλ¦Ό μ°μ°μ λ±μ΄ μμ΅λλ€. μ¬μ©μλ νμμ λ°λΌ μ°μ°μλ₯Ό μ€λ²λ‘λ©νμ¬ μ¬μ©μ μ μ ν΄λμ€λ λ°μ΄ν° νμ μ λ§κ² μ°μ°μ μ μν μ μμ΅λλ€. μ΄λ κ² μ€λ²λ‘λ©λ μ°μ°μλ κΈ°μ‘΄μ μ°μ°μμ λμΌν μλ―Έλ‘ μ¬μ©λ μ μμΌλ©°, κ°μ²΄λ λ°μ΄ν° νμ μ λν μ°μ° μ½λλ₯Ό λμ± κ°κ²°νκ³ μ§κ΄μ μΌλ‘ μμ±ν μ μκ² ν΄μ€λλ€.
λκΈ