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
[47848] 클래스를 배열로 선언해서 쓸경우 extern 함수도 개별적으로 생성될까요?
강태민 [mr7ro] 1104 읽음    2007-01-23 13:56
//test.h 헤더 정의
extern void CALLBACK test(int n);

//test.cpp 정의
void CALLBACK test(int n)
{
}

void CTest::CTest()
{
   .... // 위 CALLBACK 함수를 호출하는 코드 들어감.
}
.....

가져다 쓰는곳.

#include "test.h"

CTest gTest[2];

궁금한점은 위와 같이 했을때
gTest라고 선언된 두개의 배열 클래스가 각각의 CALLBACK 함수를 가지고
호출을 하게 되는가에 대한 문제입니다.
선언된 클래스는 배열로 2개를 잡았지만 두개의 인스턴스들이 하나의 CALLBACK 함수를
가지고 돌게 되는건 아닌지 궁금하여 질문합니다.
하나의 테스트로 test2.h test2.cpp라는 파일에 똑같은 CALLBACK test(int n) 이란 함수를만들고
해더의 선언된 내용만 지워 주었습니다.
그리고 가져다 쓰는곳에서
#include "test.h"
#include "test2.h"


CTest gTest[2];
CTest2 gTest2[2];

머 이런식으로 썻더니 아무 워닝이나 에러도 띄우지 않았지만 실제 실행하니 콜백이 불려지지도 않고
심지어는 브레이크포인트도 걸리지 않더군요..
결국 test2.cpp 의 CALLBACK 함수의 이름을 바꾸어 주었더니 정상적으로 되더군요.
이렇게 된건 가만히 생각하면 당연한 결과인것 같긴한데요.

그래서 클래스가 배열로 선언됐을때도 비슷한 일이 생기는건 아닐까 생각이 들어 질문올립니다.
고수님들의 답변 기다리겠습니다.

+ -

관련 글 리스트
47848 클래스를 배열로 선언해서 쓸경우 extern 함수도 개별적으로 생성될까요? 강태민 1104 2007/01/23
48010     Re:클래스를 배열로 선언해서 쓸경우 extern 함수도 개별적으로 생성될까요? dd 1361 2007/02/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.