Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 함수 오버로딩 및 반환 유형

<시간/>

동일한 범위에서 동일한 함수 이름에 대해 여러 정의를 가질 수 있습니다. 함수의 정의는 인수 목록의 인수 유형 및/또는 수에 따라 서로 달라야 합니다. 반환 유형만 다른 ​​함수 선언은 오버로드할 수 없습니다.

함수 오버로딩은 기본적으로 컴파일 시간 다형성입니다. 함수 서명을 확인합니다. 서명이 동일하지 않으면 오버로드될 수 있습니다. 함수의 반환 유형은 함수 오버로딩에 영향을 주지 않습니다. 반환 유형이 다른 동일한 함수 서명은 오버로드되지 않습니다.

다음은 동일한 함수 print()가 다른 데이터 유형을 인쇄하는 데 사용되는 예입니다.

예시 코드

#include <iostream>
using namespace std;
class printData {
   public:
      void print(int i) {
         cout << "Printing int: " << i << endl;
      }
      void print(double f) {
         cout << "Printing float: " << f << endl;
      }
      void print(char* c) {
         cout << "Printing character: " << c << endl;
      }
};
int main(void) {
   printData pd;
   pd.print(5); // Call print to print integer
   pd.print(500.263); // Call print to print float
   pd.print("Hello C++"); // Call print to print character
   return 0;
}

출력

Printing int: 5
Printing float: 500.263
Printing character: Hello C++