더하기 연산자를 오버로드하는 올바른 방법은 무엇입니까?

Denis

클래스 세트가 있습니다.

class A 
{
public:
    A(B b) {//..}   
    A(C C) {//..}
    A(D D) {//..}

    A& operator+=(A const& ls) {//..}
    A operator+(A const& ls) const {//..}
}

class B
{
//....
}

class C
{
//....
}

class D
{
//....
}

다음 작업을 지원하고 싶습니다.

1) A result = a1 + a2;
2) a1 += a2;
3) A result = b1 + a1; (and C, D classes instead of B)
4) A result = a1 + b1; (and C, D classes instead of B)
5) a1 += b1; (and C, D classes instead of B)

이 경우 어떻게해야합니까? 사용하고 싶지 않습니다 boost.

Juanchopanza

당신이없는 것은 암시 적 변환입니다 B, C그리고 DA의 LHS에 대한 operator+. 연산자를 비 멤버 함수로 만들어이를 허용 할 수 있습니다. 예를 들면 :

A operator+(A const& ls, A const& rs)
{
  A ret = ls;
  ret += rs;
  return ret;
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

<< 연산자를 올바르게 오버로드하는 방법은 무엇입니까?

분류에서Dev

파생 클래스에 대한 할당 연산자를 오버로드하는 올바른 방법은 무엇입니까?

분류에서Dev

삼항 연산자를 사용하는 Walrus 연산자의 올바른 구문은 무엇입니까?

분류에서Dev

자기 객체를 참조하는 올바른 방법은 무엇입니까

분류에서Dev

비교 기호 "<"를 오버로드 할 때 C ++에서 오름차순으로 정렬하는 올바른 방법은 무엇입니까?

분류에서Dev

C ++에서 typecast 연산자 템플릿을 정의하는 올바른 방법은 무엇입니까

분류에서Dev

QList를 초기화하는 올바른 방법은 무엇입니까?

분류에서Dev

Java 실행기를 사용하는 올바른 방법은 무엇입니까?

분류에서Dev

올바른 CSS 선택기를 정의하는 방법은 무엇입니까?

분류에서Dev

오류를 전파하는 올바른 방법은 무엇입니까?

분류에서Dev

dropdown.onselect를 서버 백엔드에 연결하는 올바른 방법은 무엇입니까?

분류에서Dev

+ 및 + = 연산자를 멤버가 아닌 함수로 오버로드하는 방법은 무엇입니까?

분류에서Dev

연산자`in`을 오버로드하는 방법은 무엇입니까?

분류에서Dev

이 PHP 코드를 수행하는 올바른 방법은 무엇입니까

분류에서Dev

그리드를 사용하는 올바른 방법은 무엇입니까?

분류에서Dev

이 코드를 설명하는 올바른 방법은 무엇입니까?

분류에서Dev

Flux를 Mono로 압축하는 올바른 방법은 무엇입니까?

분류에서Dev

MFC로 큐를 구현하는 올바른 방법은 무엇입니까?

분류에서Dev

xkb로 키를 재 할당하는 올바른 방법은 무엇입니까?

분류에서Dev

개인 경로를 제공하는 올바른 방법은 무엇입니까?

분류에서Dev

PHP에서 올바른 경로를 설정하는 올바른 방법은 무엇입니까?

분류에서Dev

NextJs에 Sass를 삽입하는 올바른 방법은 무엇입니까?

분류에서Dev

배열 인덱스 연산자의 여러 첨자를 오버로드하는 방법은 무엇입니까?

분류에서Dev

친구 함수로 만들지 않고 == 연산자를 오버로드하는 방법은 무엇입니까?

분류에서Dev

연산자를 유형 동의어로 오버로드하는 방법은 무엇입니까?

분류에서Dev

정규 행렬을 계산하는 올바른 방법은 무엇입니까?

분류에서Dev

mysql에서 exists 연산자를 올바르게 사용하는 방법은 무엇입니까?

분류에서Dev

Django에서 앱을 연결하는 올바른 방법은 무엇입니까?

분류에서Dev

Firebase 인증 방법으로 오류를 확인하는 올바른 방법은 무엇입니까?

Related 관련 기사

  1. 1

    << 연산자를 올바르게 오버로드하는 방법은 무엇입니까?

  2. 2

    파생 클래스에 대한 할당 연산자를 오버로드하는 올바른 방법은 무엇입니까?

  3. 3

    삼항 연산자를 사용하는 Walrus 연산자의 올바른 구문은 무엇입니까?

  4. 4

    자기 객체를 참조하는 올바른 방법은 무엇입니까

  5. 5

    비교 기호 "<"를 오버로드 할 때 C ++에서 오름차순으로 정렬하는 올바른 방법은 무엇입니까?

  6. 6

    C ++에서 typecast 연산자 템플릿을 정의하는 올바른 방법은 무엇입니까

  7. 7

    QList를 초기화하는 올바른 방법은 무엇입니까?

  8. 8

    Java 실행기를 사용하는 올바른 방법은 무엇입니까?

  9. 9

    올바른 CSS 선택기를 정의하는 방법은 무엇입니까?

  10. 10

    오류를 전파하는 올바른 방법은 무엇입니까?

  11. 11

    dropdown.onselect를 서버 백엔드에 연결하는 올바른 방법은 무엇입니까?

  12. 12

    + 및 + = 연산자를 멤버가 아닌 함수로 오버로드하는 방법은 무엇입니까?

  13. 13

    연산자`in`을 오버로드하는 방법은 무엇입니까?

  14. 14

    이 PHP 코드를 수행하는 올바른 방법은 무엇입니까

  15. 15

    그리드를 사용하는 올바른 방법은 무엇입니까?

  16. 16

    이 코드를 설명하는 올바른 방법은 무엇입니까?

  17. 17

    Flux를 Mono로 압축하는 올바른 방법은 무엇입니까?

  18. 18

    MFC로 큐를 구현하는 올바른 방법은 무엇입니까?

  19. 19

    xkb로 키를 재 할당하는 올바른 방법은 무엇입니까?

  20. 20

    개인 경로를 제공하는 올바른 방법은 무엇입니까?

  21. 21

    PHP에서 올바른 경로를 설정하는 올바른 방법은 무엇입니까?

  22. 22

    NextJs에 Sass를 삽입하는 올바른 방법은 무엇입니까?

  23. 23

    배열 인덱스 연산자의 여러 첨자를 오버로드하는 방법은 무엇입니까?

  24. 24

    친구 함수로 만들지 않고 == 연산자를 오버로드하는 방법은 무엇입니까?

  25. 25

    연산자를 유형 동의어로 오버로드하는 방법은 무엇입니까?

  26. 26

    정규 행렬을 계산하는 올바른 방법은 무엇입니까?

  27. 27

    mysql에서 exists 연산자를 올바르게 사용하는 방법은 무엇입니까?

  28. 28

    Django에서 앱을 연결하는 올바른 방법은 무엇입니까?

  29. 29

    Firebase 인증 방법으로 오류를 확인하는 올바른 방법은 무엇입니까?

뜨겁다태그

보관