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
[71939] Re:Re:생성에 삭제 질문좀 들리게요
친구 [jjs8224] 3326 읽음    2014-10-30 13:57
저도 착각 하고 있는것 같기는 한데..

로그를 확인해 보니.. 도저히 이해가 안되서.. ^^;;

이리 저리 검토 중입니다.

님말씀데로 생성자 소멸자에 에서도 로그를 남겨 한번 확인해볼 필요가 있겠네요 ^^

답변 감사드립니다.

빌더초보 님이 쓰신 글 :
: 질문1.
:
: ServerStart() 함수에 ServerEnd()가 있기 때문에 두번 생성 될 수가 없을텐데요?
: 아마 생성이 두번 된 것 처럼 동작 한다고 착각 하는 다른 뭔가가 있는 것 같네요.
:
: 그래도 확인 하고 싶다면,
:
: FHost_ps 변수 자체로는 중복 생성인지 아닌 확인 할 수 없을 거고,
:
: int CreateCount=0;
: int DestroyCount=0;
:
: 이렇게 전역 변수를 두고, TFHost_ps의 생성자에
: CreateCount++;
:
: 소멸자에
: DestroyCount++;
:
: 를 넣어서 테스트 해보는 방법도 괜찮을 것 같습니다.
:
:
:
: 질문2.
:
: 생성시점에 포인터를 구분해 놓지 않는 이상
: 같은 변수에 중복 생성된 놈들은 모두 삭제 불가능한걸로 알고 있습니다.
: 그래서 질문자께서 사용한 방법 같이 생성 직전에 소멸하고 포인터를 초기화 하는 거죠.
:
: 친구 님이 쓰신 글 :
: : 소켓 통신할때 보통
: : 아래 처럼 사용하는데요
: :
: : void __fastcall TForm::ServerStart()
: : {
: :         ServerEnd();
: :         FHost_ps = new TFHost_ps(ClientSocket);
: :         ClientSocket->Active = true;
: : }
: : void __fastcall TForm::ServerEnd()
: : {
: :     if(ClientSocket->Active) ClientSocket->Active = false;
: :     if(FHost_ps)
: :     {
: :         delete FHost_ps;
: :         FHost_ps = NULL;
: :     }
: : }
: :
: : 가끔 이상하게 생성이 2번 된것처럼 동작 하는것 같아서요
: :
: : 만약
: :         FHost_ps = new TFHost_ps(ClientSocket);
: :         FHost_ps = new TFHost_ps(ClientSocket);
: : 이렇게 그냥 2번 했을 경우
: :
: : 질문1.
: :  2개가 생성됬는지 어떻게 확인 할수 있어요??
: :
: : 질문2.
: :  2개다 delete 하고 싶은데 어떻게 하죠?
: :
: :
: :
: :

+ -

관련 글 리스트
71936 생성에 삭제 질문좀 들리게요 친구 3182 2014/10/30
71938     Re:생성에 삭제 질문좀 들리게요 이벤트 3216 2014/10/30
71937     Re:생성에 삭제 질문좀 들리게요 빌더초보 3186 2014/10/30
71939         Re:Re:생성에 삭제 질문좀 들리게요 친구 3326 2014/10/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.