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
[12767] Re:클래스를 다른 Unit에서 사용하려면..
이경문 [gilgil] 839 읽음    2001-11-17 08:44
일반적으로 객체가 하나만 존재할 것이라는 추측에 대해서는 extern을 사용하는 것이 일반적입니다.
예를 들어 TApplication class의 object인 Application이나 TPrinter class의 object인 Printer 따위들 말이죠.
Mat이라는 class를 봤을 때는 반드시 member function이 필요없다고 생각이 들기 때문에
object 생성할 것 없이 그냥 사용하는 방법도 무난할 것 같습니다.
다음과 같이 말이죠.

<unit1.h>
class Mat
{
  static int Add(int x, int y);
  static int Div(int x, int y);
};

<unit1.cpp>
아래와 동일

<사용예제>
#include "unit1.h"

main()
{
  int i = 5, j = 6;
  printf("%d + %d = %d\n", i, j, Mat::Add(i, j)); <- 객체 생성없이 그냥 쓴다.
}

참고:
java에서도 일반적으로 Math function들은 static으로 되어 있습니다.
변수앞에 붙이는 static과 함수앞에 붙이는 static는 의미가 조금 다릅니다.
변수앞에 붙는 static은 전역변수같이 작동되면서 scope가 지역으로 한정되는 변수를 말하며,
function앞에 붙는 static은 meta class member임을 뜻하는 것입니다.


소영 님이 쓰신 글 :
: Unit1.h에서 class를 선언하고 이 class에 선언된 함수들을 다른 Unit에서 사용할려구 합니다.
: 예를들면,
: <unit1.h>
: class Mat
: {
: public:
:     Mat(); //생성자
:     ~Mat();
:     int Add(int,int);
:     int Div(int,int);
:          .....
: };
:
: <unit1.cpp>
: int mat::Add(int a,int b){
:   ....
: }
: int mat::Div(int a,int b){
:     ...
: }
: 이 클래스 Mat에 선언된 함수들을 unit2에서 사용하려 합니다.
: class에 대해 검색을 해보니 extern을 사용하라고 하던데 잘 이해가 되지 않아
: 다시 질문드립니다. 자세히 좀 알려주세요.
:   
:

+ -

관련 글 리스트
12708 클래스를 다른 Unit에서 사용하려면.. 소영 806 2001/11/15
12767     Re:클래스를 다른 Unit에서 사용하려면.. 이경문 839 2001/11/17
12731     Re:클래스를 다른 Unit에서 사용하려면.. 향기 826 2001/11/16
12716     Re:클래스를 다른 Unit에서 사용하려면.. SteelHeart 759 2001/11/15
12718         Re:Re:클래스를 다른 Unit에서 사용하려면..덧말.... SteelHeart 744 2001/11/15
12710     Re:클래스를 다른 Unit에서 사용하려면.. 수야 768 2001/11/15
12715         Re:Re:클래스를 다른 Unit에서 사용하려면.. 소영 767 2001/11/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.