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

C/C++ Q/A
[1276] Re:어디에 문제가 있나요?
김재구 [knis001] 1377 읽음    2002-09-26 03:43
Man.cpp파일에서

ostream& operator<<(ostream& out, const Man& m) {
    return out << m.toString();
}

m변수가 const속성을 가지고 넘어왔지요??
const속성을 가진 m에게 toString()멤버함수를 호출하고 있는데,
toString()의 함수정의는 아래와 같이 const속성이 없습니다.

string Man::toString() {
    //생략
    return newName + newAddress + newEmail + newTel + newAge;
}

다시말해 이것은 마치,

const Man a;
Man* pa;
pa=a;
라는 명령을 수행한 것과 같은데, 이런 문장은 에러입니다. 상수속성을
가진 변수를 일반 포인터변수에게 할당할 수는 없겠지요.

함수정의를 다음과 같이 변경해야합니다.

string Man::toString() const {
       //생략
}


또하나의 에러문장도 toString()함수에 존재하는데,

string newAge = string("나이: ") + (age < 0 ? age : "null");

?: 라는 단축if문에서 age는 정수타입이고 "null" 은 char* 타입입니다.
타입이 호환되지 않으므로 에러가 납니다. age도 char* 타입으로 변환시켜주거나
아니면 둘다 string타입으로 변환시켜주어야겠죠.

+ -

관련 글 리스트
1275 어디에 문제가 있나요? 박석순 1376 2002/09/26
1276     Re:어디에 문제가 있나요? 김재구 1377 2002/09/26
1279         Re:Re:아직 문제가 더 있는데.... 박석순 1364 2002/09/26
1280             Re:Re:Re:아직 문제가 더 있는데.... 김재구 1425 2002/09/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.