μ°μ°μ μ€λ²λ‘λ©μ μμκ°κΈ°μ μ μ°λ¦¬λ ν΄λμ€μμμ μ°μ°μμ¬μ μλΌλ κ°λ μ λν΄μ μμμΌνλ€.
μ°μ°μ μ¬μ μ
int a = 3;
int b = 5;
c = a + b //
// class =============
class a;
class b;
c = a + b //
μμ κ°μ΄ νλ²νκ² int νμλΌλ¦¬μ μ°μ°μ κ·Έλ₯ κ°λ₯νκ² μ§λ§ μ°λ¦¬κ° μ§νμ ν classλΌλ¦¬μ μ°μ°μ class λ΄λΆμ μΌλ‘ μ΄λ»κ² μ°μ°μ μ§νν΄μΌνλμ§ μ΄λ ν κ°μ²΄λΌλ¦¬ λν κ±΄μ§ μ μ μλ€.
κ·Έλμ class λΌλ¦¬ μ°μ°μ νκΈ°μν΄μλ λ°λ‘ μ μλ₯Ό ν΄μ€μΌνλ€.
// μλμ κ°μ λ°©μμ μ¬μ©
class class::operator + ( const class& other )
{
class temp;
temp = this->value + other.value;
return (temp);
}
μ°μ°μ μ€λ²λ‘λ© (operator overloading)
μ°μ°μ μ€λ²λ‘λ©μ΄λ κ°μ ν΄λμ€ λ΄μμ κ°μ μ΄λ¦μ ν¨μλ₯Ό μ€λ³΅μΌλ‘ μ μνλ λ°©μμ΄λ€.
ν΄λμ€λ΄μμ λ§€κ°λ³μμ νμ μ΄λ κ°μλ₯Ό λ€λ₯΄κ² ν΄μ κ°μ μ΄λ¦μ ν¨μλ₯Ό μ€λ³΅μ μΌλ‘ μ μν μ μλ€.
int sum(int a, int b)
{
return a + b;
}
double sum(double a, double b)
{
return a + b;
}
μμ κ°μ΄ λ§€κ° ν¨μλ₯Ό ꡬμ±νλ©΄ νμ μ λ§μΆ°μ ν΄λΉ ν¨μκ° μ€νλλ€κ³ νλ€.
μ°μ°μ μ€λ²λΌμ΄λ© (operator overriding)
μμλ°μ ν΄λμ€μμ ν¨μλ₯Ό μ¬μ μ
μΆκ°μ μΌλ‘ μ°μ°μ μ€λ²λ‘λ©κ³Ό λΉμ·ν μ€λ²λΌμ΄λ©μ΄λΌλ κ°λ λ μ‘΄μ¬νλλ° λΆλͺ¨ ν΄λμ€λ₯Ό μμλ°μ μμν΄λμ€μμ ν΄λΉ ν¨μλ₯Ό μ¬μ μν΄μ μ¬μ©νλ λ°©μμ μ΄μΌκΈ°νλ€.
class Parent
{
public:
void hello()
{
std::cout << "parent";
}
};
class Child : public Parent
{
public:
void hello()
{
std::cout << "Child";
}
}
μν©μ λ°λΌμ λ³κ²½ κ°λ₯
'42seoul > projects' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++] endl κ³Ό β\nβ μ°¨μ΄μ (0) | 2023.09.02 |
---|---|
[C++] Inheritance ( μμ ), polymorphism ( λ€νμ± ) (0) | 2023.09.02 |
[CPP Module] 03 (0) | 2023.07.29 |
[CPP Module] 02 (0) | 2023.07.25 |
[CPP Module] 01 (1) | 2021.09.16 |
μ°μ°μ μ€λ²λ‘λ©μ μμκ°κΈ°μ μ μ°λ¦¬λ ν΄λμ€μμμ μ°μ°μμ¬μ μλΌλ κ°λ μ λν΄μ μμμΌνλ€.
μ°μ°μ μ¬μ μ
int a = 3;
int b = 5;
c = a + b //
// class =============
class a;
class b;
c = a + b //
μμ κ°μ΄ νλ²νκ² int νμλΌλ¦¬μ μ°μ°μ κ·Έλ₯ κ°λ₯νκ² μ§λ§ μ°λ¦¬κ° μ§νμ ν classλΌλ¦¬μ μ°μ°μ class λ΄λΆμ μΌλ‘ μ΄λ»κ² μ°μ°μ μ§νν΄μΌνλμ§ μ΄λ ν κ°μ²΄λΌλ¦¬ λν κ±΄μ§ μ μ μλ€.
κ·Έλμ class λΌλ¦¬ μ°μ°μ νκΈ°μν΄μλ λ°λ‘ μ μλ₯Ό ν΄μ€μΌνλ€.
// μλμ κ°μ λ°©μμ μ¬μ©
class class::operator + ( const class& other )
{
class temp;
temp = this->value + other.value;
return (temp);
}
μ°μ°μ μ€λ²λ‘λ© (operator overloading)
μ°μ°μ μ€λ²λ‘λ©μ΄λ κ°μ ν΄λμ€ λ΄μμ κ°μ μ΄λ¦μ ν¨μλ₯Ό μ€λ³΅μΌλ‘ μ μνλ λ°©μμ΄λ€.
ν΄λμ€λ΄μμ λ§€κ°λ³μμ νμ μ΄λ κ°μλ₯Ό λ€λ₯΄κ² ν΄μ κ°μ μ΄λ¦μ ν¨μλ₯Ό μ€λ³΅μ μΌλ‘ μ μν μ μλ€.
int sum(int a, int b)
{
return a + b;
}
double sum(double a, double b)
{
return a + b;
}
μμ κ°μ΄ λ§€κ° ν¨μλ₯Ό ꡬμ±νλ©΄ νμ μ λ§μΆ°μ ν΄λΉ ν¨μκ° μ€νλλ€κ³ νλ€.
μ°μ°μ μ€λ²λΌμ΄λ© (operator overriding)
μμλ°μ ν΄λμ€μμ ν¨μλ₯Ό μ¬μ μ
μΆκ°μ μΌλ‘ μ°μ°μ μ€λ²λ‘λ©κ³Ό λΉμ·ν μ€λ²λΌμ΄λ©μ΄λΌλ κ°λ λ μ‘΄μ¬νλλ° λΆλͺ¨ ν΄λμ€λ₯Ό μμλ°μ μμν΄λμ€μμ ν΄λΉ ν¨μλ₯Ό μ¬μ μν΄μ μ¬μ©νλ λ°©μμ μ΄μΌκΈ°νλ€.
class Parent
{
public:
void hello()
{
std::cout << "parent";
}
};
class Child : public Parent
{
public:
void hello()
{
std::cout << "Child";
}
}
μν©μ λ°λΌμ λ³κ²½ κ°λ₯
'42seoul > projects' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++] endl κ³Ό β\nβ μ°¨μ΄μ (0) | 2023.09.02 |
---|---|
[C++] Inheritance ( μμ ), polymorphism ( λ€νμ± ) (0) | 2023.09.02 |
[CPP Module] 03 (0) | 2023.07.29 |
[CPP Module] 02 (0) | 2023.07.25 |
[CPP Module] 01 (1) | 2021.09.16 |