소프트웨어/c++

Weird case. two header file and one source with static element.

개발자_이훈규 2015. 2. 2. 17:35

1. 만든 이유 (why made this code?)


이런 케이스를 디버깅해야 하는데 처음 보는 경우라 가능한지 궁금했습니다.

( Meeting first this case, I wander what it is. )


2. Class structure

TestOne.h TestOne.cpp

noHave.cpp

main.cpp


TestOne.cpp에서 noHave를 만들어서 저장하고,

print를 하는데 noHave class를 불러와서 출력한다.

그러니깐 noHave는 단순히 데이터의 역활정도로 보면 된다.


여기서 특이한 점은 Source 파일이 한 곳에 뭉쳐져 있어도 잘 동작하는 것이다.


저의 예상으로는 코드 스텍에 이상하게 쌓여서 동작을 하지 않는 것이였는데 잘 동작하는거 보니 싱숭생숭하다.


(그럼 다른 원인을 찾아야 버그를 찾을 수 있다는 말이니깐요...ㅠ)



3. Source


1) main.cpp



2) noHave.h




3) TestOne.h




4) TestOne.cpp




4. Result


잘 동작한다. 


(

ㅌㅌㅌ@ㅌㅌㅌ:~/Dropbox/cpp/testcase/twoHeaderOneSource$ g++ -c *.cpp && g++ *.o && ./a.out

print test one 55

print test two 55

one's referecne : 0x8fc7008

two's referecne : 0x8fc7018

)