저는 C ++를 배우고 다음과 tstring
같이 정의 된 간단한 클래스를 만들고 있습니다 .
n
문자열의 문자 수;ntotal
tstring의 총 문자 수;p
, 데이터를 포함하는 영역에 대한 포인터.따라서이 클래스는 정적 부분 ( n
, ntotal
및 p
)과 동적 부분 (데이터 자체)으로 구성됩니다.
세 가지 생성자를 만들었습니다.
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] 삭제
몇 마디 만하겠습니다