C ++에서 어떤 연산자 오버로드를 선택하는 방법은 무엇입니까?

필라 톤

저는 C ++를 배우고 다음과 tstring같이 정의 된 간단한 클래스를 만들고 있습니다 .

  • n 문자열의 문자 수;
  • ntotal tstring의 총 문자 수;
  • p, 데이터를 포함하는 영역에 대한 포인터.

따라서이 클래스는 정적 부분 ( n, ntotalp)과 동적 부분 (데이터 자체)으로 구성됩니다.

세 가지 생성자를 만들었습니다.

  • 하나는 매개 변수가 없습니다.
  • 하나의 복사 생성자;
  • C- 문자열 매개 변수를 취하는 하나의 생성자.

tstring예를 들어 지침을 사용하여 하나의 객체를 하나의 C 문자열 로 연결할 수 있기를 원합니다 .

tstring x("Hello), y;
y = x + " World";

+연산자를 과부하시켜야한다고 생각합니다 . 그러나 나는 내부 방법 사이에 과부하를 가하기 위해 어떤 방법을 사용 해야하는지 이해하지 못합니다.

tstring tstring::operator+(char string[])

또는 외부 방법 (setter 및 getter 메서드 사용)

tstring operator+ (const tstring& myTstring, const char* string)

누군가 나에게 차이점과 채택하는 가장 좋은 방법을 설명해 줄 수 있습니까?

미리 감사드립니다!

아담 소스 노프 스키

이 경우 두 개의 연결을 tstring먼저 고려해야 합니다. 이를 통해 tstring(const char *)생성자가 변환을 처리 하도록 허용 할 수 있습니다. 이렇게하면 C- 문자열을 무료로 연결할 수 있습니다.

그럼 당신은 것을 알 수 있습니다 tstring+이 char []같은 결과를 양보하지 않는 char []+를 tstring. 첫 번째는 변환 생성자를 호출하고 두 번째는 일치하는 연산자를 찾지 못하기 때문입니다.

비대칭을 갖는 operator+것은 직관에 반 operator+(const char *, tstring const &)하므로 인수를 클래스 내 형제에게 전달할 비 구성원도 제공해야합니다 .

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

최신 C ++에서 산술 연산자를 오버로드하는 "가장 좋은"방법은 무엇입니까?

분류에서Dev

C #에서 오버로드 된 산술 연산자로 인터페이스를 만드는 방법은 무엇입니까?

분류에서Dev

C ++에서 << 연산자를 오버로드하여 반복적으로 사용하는 방법은 무엇입니까?

분류에서Dev

C 언어에 대해 '*' '+' '-'등과 같은 수학 연산자를 강조하는 방법은 무엇입니까?

분류에서Dev

C #에서 + = 연산자를 오버로드하는 방법이 있습니까?

분류에서Dev

C ++에서 단항 및 이진 마이너스 연산자를 모두 오버로드하는 방법은 무엇입니까?

분류에서Dev

비 클래스 패키지에서 연산자를 오버로드하는 방법은 무엇입니까?

분류에서Dev

비 클래스 패키지에서 연산자를 오버로드하는 방법은 무엇입니까?

분류에서Dev

구조체 내에서 '=='연산자를 오버로드하는 방법은 무엇입니까?

분류에서Dev

C #에서 자동으로 선택 및 선택되지 않은 라디오 버튼 및 타이머를 구현하는 방법은 무엇입니까?

분류에서Dev

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

분류에서Dev

cv :: Filestorage에 대해 << 연산자를 오버로드하는 방법은 무엇입니까?

분류에서Dev

C에서 함수를 오버로드하는 방법은 무엇입니까?

분류에서Dev

파일에서 개별 단어를 선택하고 계산하는 방법은 무엇입니까?

분류에서Dev

* 또는-연산자없이 C에서 양의 정수를 부정하는 방법은 무엇입니까?

분류에서Dev

C #에서 제네릭 매개 변수의 연산자를 제한하는 방법은 무엇입니까?

분류에서Dev

C #에서 느슨한 같음 연산자를 수행하는 방법은 무엇입니까?

분류에서Dev

DART_API의 C ++에서 연산자를 호출하는 방법은 무엇입니까?

분류에서Dev

C에서 or 연산자를 사용하는 가장 효율적인 방법은 무엇입니까?

분류에서Dev

Objective-C에서 대략 동일한 연산자를 사용하는 방법은 무엇입니까?

분류에서Dev

이 주어진 코드에서 :: * 연산자와 member_fn을 번역하는 방법은 무엇입니까?

분류에서Dev

언어 선택 대화 상자에서 기본 언어를 설정하는 방법은 무엇입니까?

분류에서Dev

C ++ 연산자 오버로드-실제로 반환하는 피연산자 유형은 무엇입니까?

분류에서Dev

c에서 문자열 당 단어와 문장의 수를 계산하는 방법은 무엇입니까?

분류에서Dev

JQuery 선택기로 HTML Dom에서 특정 자식 노드를 선택하는 방법은 무엇입니까?

분류에서Dev

C # 코드에서 jQuery 탭을 선택하는 방법은 무엇입니까?

분류에서Dev

Pytorch에서 BitShift 연산자를 사용하는 방법은 무엇입니까?

분류에서Dev

VBA에서 Like 연산자를 사용하는 방법은 무엇입니까?

분류에서Dev

Kotlin에서 새 연산자를 정의하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    최신 C ++에서 산술 연산자를 오버로드하는 "가장 좋은"방법은 무엇입니까?

  2. 2

    C #에서 오버로드 된 산술 연산자로 인터페이스를 만드는 방법은 무엇입니까?

  3. 3

    C ++에서 << 연산자를 오버로드하여 반복적으로 사용하는 방법은 무엇입니까?

  4. 4

    C 언어에 대해 '*' '+' '-'등과 같은 수학 연산자를 강조하는 방법은 무엇입니까?

  5. 5

    C #에서 + = 연산자를 오버로드하는 방법이 있습니까?

  6. 6

    C ++에서 단항 및 이진 마이너스 연산자를 모두 오버로드하는 방법은 무엇입니까?

  7. 7

    비 클래스 패키지에서 연산자를 오버로드하는 방법은 무엇입니까?

  8. 8

    비 클래스 패키지에서 연산자를 오버로드하는 방법은 무엇입니까?

  9. 9

    구조체 내에서 '=='연산자를 오버로드하는 방법은 무엇입니까?

  10. 10

    C #에서 자동으로 선택 및 선택되지 않은 라디오 버튼 및 타이머를 구현하는 방법은 무엇입니까?

  11. 11

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

  12. 12

    cv :: Filestorage에 대해 << 연산자를 오버로드하는 방법은 무엇입니까?

  13. 13

    C에서 함수를 오버로드하는 방법은 무엇입니까?

  14. 14

    파일에서 개별 단어를 선택하고 계산하는 방법은 무엇입니까?

  15. 15

    * 또는-연산자없이 C에서 양의 정수를 부정하는 방법은 무엇입니까?

  16. 16

    C #에서 제네릭 매개 변수의 연산자를 제한하는 방법은 무엇입니까?

  17. 17

    C #에서 느슨한 같음 연산자를 수행하는 방법은 무엇입니까?

  18. 18

    DART_API의 C ++에서 연산자를 호출하는 방법은 무엇입니까?

  19. 19

    C에서 or 연산자를 사용하는 가장 효율적인 방법은 무엇입니까?

  20. 20

    Objective-C에서 대략 동일한 연산자를 사용하는 방법은 무엇입니까?

  21. 21

    이 주어진 코드에서 :: * 연산자와 member_fn을 번역하는 방법은 무엇입니까?

  22. 22

    언어 선택 대화 상자에서 기본 언어를 설정하는 방법은 무엇입니까?

  23. 23

    C ++ 연산자 오버로드-실제로 반환하는 피연산자 유형은 무엇입니까?

  24. 24

    c에서 문자열 당 단어와 문장의 수를 계산하는 방법은 무엇입니까?

  25. 25

    JQuery 선택기로 HTML Dom에서 특정 자식 노드를 선택하는 방법은 무엇입니까?

  26. 26

    C # 코드에서 jQuery 탭을 선택하는 방법은 무엇입니까?

  27. 27

    Pytorch에서 BitShift 연산자를 사용하는 방법은 무엇입니까?

  28. 28

    VBA에서 Like 연산자를 사용하는 방법은 무엇입니까?

  29. 29

    Kotlin에서 새 연산자를 정의하는 방법은 무엇입니까?

뜨겁다태그

보관