[잡담] c++ 공부 산 넘어 산이군요.
글쓴이: emptynote / 작성시간: 화, 2011/02/08 - 11:50오후
c++ 공부 산 넘어 산이군요.
class CommonWidget {
private :
static int ttmp;
public :
static Gtk::ComboBox* CreateForgotQuestComboBox() {
LOGGER_DEBUG("start");
ttmp = 10;
Gtk::ComboBox* p_forogot_quest_combo_box = new Gtk::ComboBox();
LOGGER_DEBUG("end");
return p_forogot_quest_combo_box;
}
};
이런식으로 만들었는데, undefined reference to `CommonWidget::ttmp' 라고 뜨는군요.
static 멤버변수와 멤버 메소드를 사용한 1개 파일로된 예제 보면 참 쉬운데,
막상 파일로 나누면서 가니깐 링크 에러가 콜록...
c++ static 노이로제 걸리겠네요.
그래서 찾아보니 이런 에러가 나는 경우가 대략 2가지네요.
1) 참고 url : http://ubuntuforums.org/showthread.php?t=532693
2) 참고 url : http://www.zemy.net/tc/zemyblue/113
다행히 제 경우는 1)번 인듯하네요.
이글 쓰는 중에 해법을 찾아서 다행입니다.
Forums:
클래스 객체 또는 멤버 변수들은 사용전에 이미 생성되어 있어야 합니다.
너무 당연한 것이 이제 막 시작하는 사람들에게는 어려움이군요...
새삼 개구리 올챙이적 생각을 못한다는 사실을 깨닫게 되네요. ^_^
추가로 몇가지 조언하자면...
어떤 프로젝트를 하던 몇가지 시작하기전에 정해야하는 룰들이 있습니다.
코드 네이밍 컨벤션 룰 그리고 코딩 스타일 룰, 기본 타입 정의 (이식성을 위해서라도 해야 함), namespace 룰, 디버깅 출력 제어(trace/printf 들의 출력 물) 등은 혼자하던 여럿이 하던 정하고 시작하는 것이 좋아욤.
이건 짧은 프로젝트를 할 때는 귀찮은 것들이지만, 이런 사소한 것들 조차 귀찮아 해서는 훌륭한 소프트웨어 개발자가 되긴 어렵다 생각됩니다.
암튼 열심히 공부하셔서 훌륭한 개발자가 되어 주세요. ^_^
모두들 행복하세요~
좋은 지적 감사합니다.
좋은 지적 감사합니다.
ttmp는 잊어주세요. 혹시나 int 형 변수도 에러가 나는가 해서 급하게 정한 변수명입니다.
서버/클라이언트 구조의 간단한 게임을 하나 만들려고 하는데,
"기본 타입 정의 (이식성을 위해서라도 해야 함)" 로 알려주신
typedef signed char int8; 등은 정말 유용하게 잘 사용하겠습니다. ^^
나머지것들은 천천히 공부해 나가겠습니다.
좋은 하루 되세요.