반응형

오버로딩과 오버라이딩

 

오버로딩(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

+ Recent posts