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

C++빌더 Q&A
C++Builder Programming Q&A
[1560] [질문] 암시적 복사생성자/프포
맨퍼슈 [ ] 3413 읽음    1999-07-10 17:34

암시적 복사생성자의 원형은

Class_name (const Class_name &);    //ex) String (const String & a)

인데.

객체를 값에 의한 전달로 함수에 전달했다면,

객체를 전달인자로 받은 함수에서는 전달인자값을 암시적 복사생성자를

이용해서 값이 전달되며, 문자열은 주소값만 전달되므로

함수에서 객체가 포함하고 있는 문자열을 변경하려 한다면

const 객체이므로 변경불가가 되거나, 문자열의 주소값만을 가지므로

main 함수의 원문자열값이 변경되야하지 않나요?

그런데 방법대로 해도 함수에서 문자열변경이 제대로 되며(const 위배)

문자열을 변경해도 원본파일에는 변화가 없었읍니다.(포인터 전달 위배)

const 와 포인터를 이용함에도 함수값변경과 원본파일이 변경되지 않는

이유를 알고 싶습니다.

//ex --------------------------

#include  "string1.cpp"
void test(String a);
int main(void)
{
   String man("Test");     // String 객체
   test(man);
   cout << man << '\n';  

   return 0;
}

void test(String a)
{
   a.get_str("Hello");       // 원본 문자열 변경 !!!
   cout << a << '\n';
}



+ -

관련 글 리스트
1560 [질문] 암시적 복사생성자/프포 맨퍼슈 3413 1999/07/10
1564     [답변] 맨퍼슈/ 암시적 복사생성자/프포 박지훈.임프 3460 1999/07/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.