|
그러니까 클래스 이름을 string이라고 하면 당연히 안됩니다!
MyString 정도로 이름을 바꾸세요.
(String란 이름도 좋지 않습니다.
이것은 빌더 VCL의 문자열 클래스인 AnsiString과 동일한 타입입니다.)
굳이 string이란 이름을 써야 한다면, namespace(이름 공간)을 쓰는 방법이 있습니다.
ANSI C++ 라이브러리에 있는 클래스와 함수들은 std라는 이름 공간에 있습니다.
그래서 ANSI C++ 라이브러리를 쓸 때는 std:: 를 클래스나 함수 앞에 붙이던가,
std::cout << "namespace std" << std::endl;
또는
using namespace std;
cout << "namespace std" << endl;
명령을 써야 합니다.
이와 같이 이름이 충돌되는 경우에는
님의 작성한 클래스를 새로 namespace를 만들어서 넣습니다.
namespace ikki {
class string {
// 어쩌구 저쩌구
};
};
std::string과 구별하기 위해서는
ikki::string이라고 쓰면 됩니다.
참고로 ANSI C++의 std::string은 매우 강력하고 편리한 문자열 클래스입니다.
숙제 땜에 꼭 만들어서 제출해야할 경우가 아니라면,
문자열 처리를 위해 직접 클래스를 만드시지 마시고,
std::string을 사용하세요!
노현호 님이 쓰신 글 :
: 자주 들르면서 많은 정보를 얻고 있는 초보입니다.
: 학교에서는 vc++로 수업하지만 저는 집에서 볼랜드 c++5.5로 작업을 합니다.
: 그런데 아래와 같은 소스를 학교에서 하면 아무런 에러없이 컴파일이 되는데
: 집에서 하면 에러가 발생합니다.
: 왜 그러는지 자세히 알고 싶습니다. 이전에 했던 이거와 비슷한 연산자의 다중정의에서 int형으로만 되어 있는 정수형의 계산에서는 볼랜드 컴파일러에서도 아무런 에러가 없었습니다.
:
: 수업시간에 작성한 것입니다. 문자열을 합치는 것인데 맴버함수에 의한 연산자의 다중정의에 관한 부분입니다.
:
:
관련 글 리스트
|