안녕하세요^^
파일안에서 쓸 때 전역 변수로 CondTaskClass 의 포인터를 선언해 둡니다.
CondTaskClass *pMyCond = NULL;
그런 다음 초기화 등을 해주는 함수등에서 동적할당을 하고
다른 함수들에서는 전역의 포인터를 이용해서 멤버함수나 멤버 변수에 접근할 수 있겠죠.
이렇게 할 때는 다른 함수들에서 멤버함수나 변수를 쓰기전에 pMyCond 가 동적할당 되어있는지
체크해야 되겠죠^^
그리고 주의 하실 점이 있는데요
다음과 같이
void SomeFunc()
{
CondTaskClass myObj;
...
pMyCond = myObj;
...
}
이렇게 하시면 클일 날 수 있겠죠.
SomeFunc() 라는 함수가 끝나면 myObj 는 자동 소멸 되므로 pMyCond 는 사라진 객체를 가리키고
있게 되는 거죠..
전역에다가 선언해서 공유하는 방법 외에 필요한 함수에다가 객체의 주소를 넘겨준다던지
하는 식으로 공유 할 수도 있겠고 객체의 리스트등을 준비해서 공유하는 방법 그리고 시스템 쪽으로
깊게 들어가면 공유메모리 등등을 사용할 수 있겠죠.. ;)
도움이 되길 바랍니다. 열심히 공부하세요 ^^
minjae 님이 쓰신 글 :
: coclass.h에 다음과 같이 선언
:
: class CondTaskClass
: {
: private:
: protected:
: public:
: CondTaskClass()
: {
: }
:
: ~CondTaskClass()
: {
: }
: int CondDisplay(float co);
: void CondRead(void);
: int unit;
: float Temp;
: };
:
: 한 후
: main.cpp, setup.cpp 등에서 이 멤버변수를 사용하려고 할때 각 함수에서 객체를 생성하면
: 변수값을 공유할 수 없지 않나요?
:
:
: 죄송합니다. 제가 아직 초보라....
:
|