반응형
오버로딩과 오버라이딩
오버로딩(overloading) 은 같은이름의 함수를 선언해두고 매개변수 변경및 추가하여 사용하는 기법이야.
void overloading(int a);
void overloading(int a,int b);
void overloading(int a,char b);
이처럼 같은 이름으로 선언하고 매개변수를 바꿔 사용하지.
이게 왜? 필요한데 overloading2 나 3으로 이름 바꿔 쓰는것과 같지 않아?
그렇게도 사용할수 있지만
사용할때 하나의 이름으로 간단하게 사용하는게 장점이야!
실제로 사용할때는 2나 3이 아닌 이름을 붙여 사용하게 될텐데
overloading_int(A),overloading_string(B), 으로 사용하는것보다
overloading(A),overloading(B) 동일된 형태로 사용하는게 편하다 이거야
오버라이딩(overriding) 은 부모 클레스에서 사용된 메서드를 재정의 해서 사용하는거지
하지만 동작만을 재정의 하는것이라 매개변수와 매서드의 이름은 부모 클레스와 같아야해
코드로 보자!
class MyClass
{
public:
virtual void A();
};
class MyClass1 :MyClass
{
public:
void A()override;
};
void MyClass::A(){
std::cout<<"MyClass";
}
void MyClass1::A(){
std::cout<<"MyClass1";
}
이처럼 같은 A 라는 메서드에 내용을 바꿔 사용할수있는거야
'언어' 카테고리의 다른 글
그냥 내가 자주 쓰던 visual studio 단축키 (0) | 2024.11.20 |
---|---|
증감연산자 (0) | 2021.05.31 |
메서드 와 함수가 다른가? (0) | 2021.05.15 |