X라는 클래스를 사용하고 싶어서
X x
헤더파일에서 선언한 뒤에
cpp파일에서
x.funtion 하니까 오류뜨네연...
방법이 없을까요.
cpp파일에서 헤더파일 include하셧나요
static 선언하고 X::function하셈
Cpp에서 했죠 static X x 하고 cpp 에서 x::function 하란말?
대씀 님이랑 말하기 싫어욧!
왜욧
정 그렇게 하고십으면 extern쓰시던가!
extern X x 써봤지만 안됬다능 다중선언뜨는데 이게 내가 다 짠게아니라 원래있는 헤더에서 내가 필요한부분만 가져다가 헤더 하나만들어서 함수화시키려는거라 진단이 힘듬
헤더엔 extern X x; cpp 한 곳에서 X x; 해야 정상이지..
아니면 그 헤더를 include 하는 모든 cpp 에서 그 변수를 선언한셈이 되니까 당연히 에러가 떠야 하는 것이고.
헤더에서 선언하고 cpp에서 또 선언해주는건가 이건 헤더 파일 컴파일특성같은데 함수 형태만 헤더에서 선언하고 내용 cpp에서 하듯 해볼께여 제가 기초보강이 필요함
헤더에 extern X x; 를 한다는건, "어딘가의 모듈( cpp가 컴파일 될 obj ) 에 이 변수가 선언되어 있으니 가져다 쓰세요. 라는 말임.
cpp에 X x; 를 한다는건, "이 모듈에 이 변수를 해당 스코프에서 생성해 쓰겠다." 는 말임.
니가 a.cpp 에 X x; 를 정의했다면, b.cpp 나 c.cpp 에서 그 변수(인스턴스) 를 사용하기 전에 extern X x; 를 해 주면 됨.
만약 헤더에 extern X x; 를 해둔다면 해당 헤더를 include 하는것이 위와 동일한 결과가 되는거지.
감솨합니다
include 란건 해당 파일( 사실 h 든 cpp 든 뭐든 확장자를 가리진 않음 ) 을 그 소스코드의 현재 위치에 복사해 넣겠다는 말이고.
아긔발이가 코딩 잘하던데 모듈관리 경험은 아직 없는듯 ^_^ 귀엽네유~
기초가 부실합니다.
C 가 불친절한 부분이니까 그건 크게 기초와 상관없음유~
http://heurinbada.tistory.com/69참고하세요
컴파일 잘되네요 ㄱㅅㄱㅅ
cpp파일에서 헤더파일 include하셧나요
static 선언하고 X::function하셈
Cpp에서 했죠 static X x 하고 cpp 에서 x::function 하란말?
대씀 님이랑 말하기 싫어욧!
왜욧
정 그렇게 하고십으면 extern쓰시던가!
extern X x 써봤지만 안됬다능 다중선언뜨는데 이게 내가 다 짠게아니라 원래있는 헤더에서 내가 필요한부분만 가져다가 헤더 하나만들어서 함수화시키려는거라 진단이 힘듬
헤더엔 extern X x; cpp 한 곳에서 X x; 해야 정상이지..
아니면 그 헤더를 include 하는 모든 cpp 에서 그 변수를 선언한셈이 되니까 당연히 에러가 떠야 하는 것이고.
헤더에서 선언하고 cpp에서 또 선언해주는건가 이건 헤더 파일 컴파일특성같은데 함수 형태만 헤더에서 선언하고 내용 cpp에서 하듯 해볼께여 제가 기초보강이 필요함
헤더에 extern X x; 를 한다는건, "어딘가의 모듈( cpp가 컴파일 될 obj ) 에 이 변수가 선언되어 있으니 가져다 쓰세요. 라는 말임.
cpp에 X x; 를 한다는건, "이 모듈에 이 변수를 해당 스코프에서 생성해 쓰겠다." 는 말임.
니가 a.cpp 에 X x; 를 정의했다면, b.cpp 나 c.cpp 에서 그 변수(인스턴스) 를 사용하기 전에 extern X x; 를 해 주면 됨.
만약 헤더에 extern X x; 를 해둔다면 해당 헤더를 include 하는것이 위와 동일한 결과가 되는거지.
감솨합니다
include 란건 해당 파일( 사실 h 든 cpp 든 뭐든 확장자를 가리진 않음 ) 을 그 소스코드의 현재 위치에 복사해 넣겠다는 말이고.
아긔발이가 코딩 잘하던데 모듈관리 경험은 아직 없는듯 ^_^ 귀엽네유~
기초가 부실합니다.
C 가 불친절한 부분이니까 그건 크게 기초와 상관없음유~
http://heurinbada.tistory.com/69
참고하세요
컴파일 잘되네요 ㄱㅅㄱㅅ