프로그래밍언어/C++
[C++] 연산자 다중정의 (2)
qkzkdo
2023. 9. 15. 19:11
728x90
문자열 클래스
C에서 문자열은 char형 배열 또는 char형 포인터를 이용하여 표현한다. 또한 문자열을 처리하기 위한 다양한 함수를 사용할 수 있다. C++에서도 C와 동일한 방법으로 문자열을 사용할 수 있다.
MyString 클래스
C 스타일 문자열의 부족한 점을 보완
MyString 클래스의 연산자
연산자 | 기능 |
= | 대입 및 이동 대입 연산자. C 스타일 문자열이나 MyString 객체를 복사 또는 이동한다. |
+ | 문자열 연결 연산자. 두 문자열을 연결한다. |
+= | 문자열을 뒤에 추가한다. |
==, >, < | 관계 연산자. 두 문자열의 등호 및 순서를 비교한다. |
<< | 스트림 출력 연산자. 출력 스트림으로 문자열을 출력한다. |
[] | 문자열 내의 개별 문자 접근 |
MyString 클래스의 데이터 멤버
데이터 멤버 | 용도 |
int len | 문자열의 길이를 저장한다. |
int bufSize | 최대로 저장할 수 있는 문자열의 길이를 저장한다. |
char *buf | 문자열 저장공간 |
생성자 및 소멸자
MyString 클래스의 5개의 생성자
- MyString(int s) : private으로 선언되어 클래스 내부 생성용으로만 사용할 수 있다.
- MyString() : 비어 있는 문자열 객체를 생성
- MyString(const char *str) : 인수로 전달된 C 스타일 문자열로 객체를 초기화한다.
- MyString(const MyString &mstr) : 복사 생성자
- MyString(MyString &&mstr) : 이동 생성자
length() 함수
문자열의 길이를 반환한다.
자료형의 변환
송신 측 믈래스에 정의하는 방법
값을 보내는 클래스에서 형 변환을 정의하는 방법은 수신 측 클래스의 이름으로 연산자를 정의하는 것이다.
수신 측 클래스에 정의하는 방법
값이 변환될 클래스에서 형 변환을 정의하는 것은 값을 제공하는 송신 측 클래스의 객체를 인수로 받는 1 인수 생성자를 정의하는 것이다.
생성자를 이용한 묵시적 형 변환의 금지
명시적 형 현환을 사용 => 'explicit'을 사용하면 된다.
출처 : 전중남·이병래. 「C++프로그래밍」. 한국방송통신대학교출판문화원. 2020
728x90