영어사전을 뒤져보면, overriding은 우선시 되서 하는 것이고 overloading은 과적이다.
overriding이 상속으로 함수의 내용을 갈아 엎는걸 의미하는 것을 보면 '최우선시'가 적당한것 같고
overloading은 하나의 이름으로 여러가지 일을 하는 것이니 '과적'도 적당한것 같고
그런데 막상 단어만 두면 엄청 헷갈리는 녀석이다 -_-
일단 overloading의 제약사항은 아래의 세가지 이다.
동일 return type
동일 function name
다른 function variable
c++의 동적 타입 바인딩을 통해서
컴파일 / 런타임 시에 입력받는 변수형을 추적하여 해당 함수로 연결해줄수 있지만
리턴되는 값이 들어가는 곳에 대해서는 형변환이 있을수도 있으니 어떤걸로 할 수 없으니 사용이 불가능 하다고
들은거 같긴한데 먼소리인지 모르겠고 -_-
overriding이 상속으로 함수의 내용을 갈아 엎는걸 의미하는 것을 보면 '최우선시'가 적당한것 같고
overloading은 하나의 이름으로 여러가지 일을 하는 것이니 '과적'도 적당한것 같고
그런데 막상 단어만 두면 엄청 헷갈리는 녀석이다 -_-
overriding 미국식 [|oʊvər|raɪdɪŋ] 영국식 [|əʊvə|raɪdɪŋ] |
class CRectangle {
int width, height;
public:
CRectangle ();
CRectangle (int,int);
int area (void) {return (width*height);}
};
CRectangle::CRectangle () {
width = 5;
height = 5;
}
CRectangle::CRectangle (int a, int b) {
width = a;
height = b;
}
int _tmain(int argc, _TCHAR* argv[])
{
CRectangle rect (3,4);
CRectangle rectb;
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
return 0;
} |
일단 overloading의 제약사항은 아래의 세가지 이다.
동일 return type
동일 function name
다른 function variable
c++의 동적 타입 바인딩을 통해서
컴파일 / 런타임 시에 입력받는 변수형을 추적하여 해당 함수로 연결해줄수 있지만
리턴되는 값이 들어가는 곳에 대해서는 형변환이 있을수도 있으니 어떤걸로 할 수 없으니 사용이 불가능 하다고
들은거 같긴한데 먼소리인지 모르겠고 -_-
'Programming > C++ STL' 카테고리의 다른 글
다중상속의 문제점 (0) | 2013.03.11 |
---|---|
상속시 public, private 키워드는 하나씩만 적용된다 (0) | 2013.03.11 |
c++ class member function (0) | 2013.03.04 |
c++ namespace (0) | 2013.03.04 |
c++ class와 struct (0) | 2013.03.03 |