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

C/C++ Q/A
[6040] Re:Re:디폴트 생성자 : 이 소스 맞나요?
chqh [huniper] 2463 읽음    2007-07-16 22:27
다른 분이 에러가 나니 코드를 수정해야 한다고 하는데, 질문하신 분은 에러가 안나고 정상적으로 잘 실행이 된다..라는 질문으로 이해하고, 답변을 적습니다
==> 그렇게 이해하신것이 맞읍니다

3가지 다른 컴파일러 사용햇읍니다
그래도 전 아무리 해도 에라가 안났거든요

cc1232 님이 쓰신 글 :
: 질문이 정확히 이해가 안가네요.
: 본인의 뇌세포를 자극하는 단점이라는 게 질문을 하신 분, 본인을 뜻하는 건가요? 글의 전개상 해당 문구를 다른 곳에서 복사해오신 것 같은데, 맞나요?
: 다른 분이 에러가 나니 코드를 수정해야 한다고 하는데, 질문하신 분은 에러가 안나고 정상적으로 잘 실행이 된다..라는 질문으로 이해하고, 답변을 적습니다
:
: 정상적으로 잘 실행되는 게 맞을 듯 합니다.
: 디폴트 생성자의 경우, 아예 메모리를 할당하지 않으므로, 출력할 때도 아무것도 출력되지 않습니다
: 해당 소스상에서는 구태여 1바이트를 할당해서 NULL문자를 넣어줄 필요가 없습니다.
:
:
:
: chqh 님이 쓰신 글 :
: : 이 사이트의 일부
: :
: : http://www.yes24.com/Goods/FTGoodsView.aspx?goodsNo=254391&CategoryNumber=001001003011001
: :
: : 하지만 이 책에는 본인의 뇌세포를 자극하는 몇가지 단점들이 눈에 띄었습니다.
: : 첫째, 부록에 포함된 소스의 에러입니다. 23장을 보면 string 클래스를 정의합니다. string 클래스에서는 문자열을 저장하기 위해 메모리를 동적할당 합니다. 그런데 C++에서 문자열을 저장하기 위해서는 문자열의 길이에 1을 더해서 널(null) 문자가 저장될 공간까지 할당해 주어야 함에도 불구하고 책의 소스에는 널(null) 문자가 저장될 공간을 할당해 주지 않아 에러가 발생합니다. 그리고 디폴트 생성자로 객체를 생성하여 출력을 하는 부분에서도 에러가 발생하는데, 디폴트 생성자의 코드를 다음과 같이 수정하여야 합니다.
: :
: : string::string()
: : {
: : m_pStr = new char[1];
: : *m_pStr = '\0';
: : m_nLen = 0;
: : }
: :
: : -------------
: :
: : 제 질문 :
: : 에라 발생안하는데요 이상하네요 발생하는게 맞을까요?
: :
: : 그 책의 원래 소스를 첨부합니다.
: :
: : 이부분과 비교해보세요
: : string::string( )
: :  {
: :     m_pStr=NULL;
: :     m_nLen=0;

+ -

관련 글 리스트
6036 디폴트 생성자 : 이 소스 맞나요? chqh 2623 2007/07/07
6039     Re:디폴트 생성자 : 이 소스 맞나요? cc1232 2706 2007/07/16
6040         Re:Re:디폴트 생성자 : 이 소스 맞나요? chqh 2463 2007/07/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.