C++ 생성자 문제입니다.
글쓴이: boxboxii / 작성시간: 화, 2012/01/17 - 3:32오후
안녕하세요... 초보 개발자 입니다.
바로 질문으로 들어가면 아래와 같은 구조가 있습니다.
ex1.cpp
CEx2(1, 2);
--------------------
ex2.cpp
CEx2 a;
CEx2::CEx2(){
// 전역선언한 객체를 위해 오버로딩한 생성자
}
CEx2::CEx2(int i, int j){
m_i = i;
m_j = j;
// 여기선 당연히 값이 정상적.
}
ex2.h
class CEx2{
public:
int m_i, m_j;
CEx2();
CEx2(int, int);
};
extern CEx2 a;
----------------------
ex3.cpp
CEx3::open(){
printf("%d\n", a.i); // CEx2 클래스의 맴버변수 i
}
ex3.h
class CEx3{
int open();
};
---------------------
위와 같은 구조에서 생성자로 변수를 받으면 값이 들어가야하는데
어째 ex3.cpp에서 호출했을시에는 값이 안나옵니다.
구조적으로 문제가 있는 것인가요??
Forums:
얘기하고 싶은 부분이 여러개 있는 구조이지만
얘기하고 싶은 부분이 여러개 있는 구조이지만 접어두고
왜 값이 안나오는지만 얘기하자면
printf("%d\n", a.i)이 아니라 printf("%d\n", a.m_i)이라고 해야겠죠.
아 질문중에 잘못올렸습니다.
printf부분 a.i가 아니라 a.m_i입니다...
그렇게 해도 안나와서 문제입니다...
얘기하고싶은 부분 여러개 다 지적해주시면 감사하겠습니다.
ex1.cpp 에서 a = CEx2(1,
ex1.cpp 에서
a = CEx2(1, 2);
와 같이 되어야 하고, 실행 순서도 유념하시길.
댓글 달기