2014-02-26 1 views
0

나는 지금 온라인 코스를 수강 중입니다. 나는 강의에 의문을 품는다. 그들은 과부하의 예를 보여 주지만 그것이 옳다고 생각하지는 않습니다. 그래서 네 도움이 필요해.C++에서 오버로드 정보

Class Location { 
    private: int x,y; 
    public: 
    void valueX (int val) {x = val;} 
    int valueX() {return x;} 
} 

두 개의 함수가 valueX이지만 반환 유형이 다른 경우 오버로드가 발생합니까? 제발 도와주세요! 미리 감사드립니다.

+0

반환 유형은 오버로드와 관련이 없습니다 ... 함수 서명이 다른 경우와 다를 수 있습니다 ... 여기의 경우와 동일해야합니다. – HadeS

답변

3

예, 오버로드입니다. 오버로딩은 같은 범위에 있지만 매개 변수 유형이 다른 두 개의 함수가 같은 이름으로있는 경우에 사용됩니다. 반환 유형도 다를 수 있지만 반드시 필요하지는 않습니다.

0

하나는 매개 변수를 취합니다. 다른 하나는 그렇지 않습니다. 이것이 오버로드 된 이유입니다.

0

예, 첫 번째 함수는 정수 값을 허용하고 x를이 값 정수에 할당하고, scecond는 값을 허용하지 않고 정수를 반환합니다. x 유형의 형변환을 시도하거나 형을 변경하고 함수가 작동하는 방식을 보려면 정수가 아닌 다른 유형을 두 번째 함수로 전달하려고 시도하십시오. 당신은 템플릿 유형을 하나만 사용하여 두 함수를 대체 할 수 있습니다.