C++에서 더하기 연산자 오버로드

Muhammad Adil 2024년2월16일
C++에서 더하기 연산자 오버로드

연산자 오버로딩은 프로그래머가 연산자의 의미를 재정의할 수 있는 기술입니다. 프로그래머가 기호와 키워드에 새로운 의미를 추가하여 프로그래밍 언어의 구문을 확장할 수 있는 메커니즘입니다.

연산자는 단항, 이항 또는 삼항으로 분류할 수 있습니다. 단항 연산자는 하나의 피연산자를 사용하고 이항 연산자는 두 개의 피연산자를 사용하며 삼항 연산자는 세 개의 피연산자를 사용합니다.

friend 함수, 멤버 함수 또는 일반 함수를 사용하여 연산자를 오버로드할 수 있습니다. 이 기사는 C++의 friend 함수를 사용하여 더하기 연산자를 오버로드하는 데만 초점을 맞출 것입니다.

friend 키워드는 C++ 언어에서 클래스의 개인 데이터 멤버에 액세스할 수 있는 클래스를 지정하는 데 사용됩니다. friend 함수는 클래스 멤버가 아니지만 해당 클래스의 개인 데이터 및 함수의 일부 또는 전체에 액세스할 수 있는 권한이 부여된다는 점에 유의하는 것이 중요합니다.

Friend 클래스는 종종 다른 클래스에 대한 도우미 기능을 제공하는 데 사용됩니다. friend 함수는 클래스의 멤버가 아니기 때문에 비멤버 함수라고도 합니다.

C++에서 friend 함수를 사용하여 연산자를 오버로드하려면 friend로 선언해야 합니다. friend 선언은 이 함수가 동일한 클래스의 다른 함수 및 개체와 함께 사용될 것임을 컴파일러에 알립니다.

C++에서 friend 함수를 사용하여 더하기 연산자 오버로드

C++에서 오버로드된 더하기 연산자는 동일한 유형의 두 피연산자를 가져와서 더하기를 수행하는 이항 연산자입니다.

다음 단계는 friend 함수를 사용하여 C++에서 더하기 연산자를 오버로드하는 데 사용됩니다.

  • 파생 클래스에서 operator+()를 호출할 수 있는 템플릿 클래스를 정의합니다.
  • 파생 클래스에서 더하기 연산자를 오버로드하는 friend 함수를 정의합니다.
  • 템플릿 클래스에서 추가를 위해 오버로드된 연산자를 정의합니다.
  • 2단계에서 정의한 friend 함수에 의해 호출된 파생 클래스에서 더하기 연산에 대해 오버로드된 연산자를 정의합니다.

예제 코드:

#include <iostream>
class Demo {
 private:
  int e_demo{};

 public:
  Demo(int demo) : e_demo{demo} {}
  friend Demo operator+(const Demo& x1, const Demo& x2);
  int getDemo() const { return e_demo; }
};
Demo operator+(const Demo& x1, const Demo& x2) {
  return Demo{x1.e_demo + x2.e_demo};
}
int main() {
  Demo demo1{5};
  Demo demo2{5};
  Demo demoSum{demo1 + demo2};
  std::cout << "Total Count is " << demoSum.getDemo();
  return 0;
}

출력:

Total Count is 10

여기를 클릭 위에서 언급한 코드의 라이브 데모를 확인하십시오.

Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook

관련 문장 - C++ Operator