|
감사합니다. 제가 넘 모르는게 많아서요.. 학교에서는 그냥 vc++로만 하기 때문에
이런일이 생기는것 같아요^^
앞으로도 많은 도움 부탁드립니다.
김백일 님이 쓰신 글 :
: 그러니까 클래스 이름을 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형으로만 되어 있는 정수형의 계산에서는 볼랜드 컴파일러에서도 아무런 에러가 없었습니다.
: :
: : 수업시간에 작성한 것입니다. 문자열을 합치는 것인데 맴버함수에 의한 연산자의 다중정의에 관한 부분입니다.
: :
: :
관련 글 리스트
|