Notice
Recent Posts
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
관리 메뉴

도슐랭스타

C++ - Overloading, Overriding 본문

C++

C++ - Overloading, Overriding

도도.__. 2023. 11. 18. 14:34

Overloading(오버로딩)

  • 매개변수의 타입이나 개수를 다르게 하여 같은 이름의 함수나 메서드를 여러 개 만드는 것이다.
  • 동일한 목적을 가진 함수나 메서드를 같은 이름으로 관리할 수 있다.
//C에서는 불가능
void print(int i) {
    cout << "정수: " << i << endl;
}

void print(double f) {
    cout << "실수: " << f << endl;
}

void print(string s) {
    cout << "문자열: " << s << endl;
}

Overriding(오버라이딩)

  • 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것이다.
  • 메서드의 이름, 매개변수, 변환 타입은 동일하지만, 자식 클래스의 내부 동작을 변경할 수 있다.
  • 같은 이름의 메서드라도 클래스에 따라 다르게 동작이 가능하다!
class Animal {
public:
    virtual void makeSound() {
        cout << "동물 울음소리" << endl;
    }
};

class Cat : public Animal {
public:
    void makeSound() override {
        cout << "야옹" << endl;
    }
};
class Dog : public Animal {
public:
    void makeSound() override {
        cout << "멍멍" << endl;
    }
};

도슐랭스타
★★★★☆ : 뭐가 참 많군요..
오버라이딩을 하려면 virtual을 꼭 써주어야하는 것 같다. 면접할 때 오버라이딩과 오버로딩의 차이점을 물어보기도 한다니 기억해두면 좋을 것 같다.

반응형

'C++' 카테고리의 다른 글

C++ - 다중 상속  (0) 2023.11.29
C++ - 상속성  (3) 2023.11.22
C++ - Default Parameter  (0) 2023.11.15
C++ - 함수중첩(Function Overloading)  (0) 2023.11.15
C++ - const new  (0) 2023.11.08
Comments