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 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