Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[763] ANSI C++ 라이브러리에 원래 string 클래스가 있습니다.
김백일 [cedar] 1611 읽음    2002-06-17 10:25
그러니까 클래스 이름을 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형으로만 되어 있는 정수형의 계산에서는 볼랜드 컴파일러에서도 아무런 에러가 없었습니다.
:
: 수업시간에 작성한 것입니다. 문자열을 합치는 것인데 맴버함수에 의한 연산자의 다중정의에 관한 부분입니다.
:
:

+ -

관련 글 리스트
762 이게 무슨 에러인지 잘 모르겠습니다. 노현호 1571 2002/06/16
763     ANSI C++ 라이브러리에 원래 string 클래스가 있습니다. 김백일 1611 2002/06/17
764         감사합니다. 많은 참고 되었습니다. 수고하세요^^ 노현호 1276 2002/06/17
765             BC++라서 그런건 아닙니다. VC++도 마찬가지입니다. 김백일 1526 2002/06/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.