도슐랭스타
C++ - Overloading, Overriding 본문
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