|
안녕하세요...
질문을 보니까 TSerialThread가 TSerialCompo의 내용을 알고 싶다는 것 같은데요... 그러면 TSerialThread가 TSerialCompo의 "친구"가 되어야 하는데, 이학균님께서 하신거는 반대가 됩니다...
현재로서는 TSerialCompo가 TSerialThread의 존재를 모르므로 private 멤버를 참조할 수 없습니다.
class TSerialCompo: public TComponent
{
private:
Handle PortHandle;
friend class TSerialCompo;
}
class TSerialThread : public TThread
{
public :
Handle GetPortHandle(TSerialCompo temp) { return temp.PortHandle; }; <- 하나의 예입니다.
:
:
}
이렇게 하면 됩니다. 제가 실습을 해서 확인해 보았는데, 혹시 잘못되면 다시 올려 주세요...
그럼... 즐넷하세요...
이학균 님이 쓰신 글 :
: 매번.. 질문만 드리네요.. 답변은 아는게 없어서 못해드리고요..
: 그래도 꼬박꼬박 답변 주시는 분들 정말 감사드려요.. 많은 도움이 되고 있답니다.
: 게시판에 friend로 아무리 찾아봐도 거기에 대한 마땅한 글이 없어서 직접 적습니다.
: 예를 들어...
: class TSerialCompo: public TComponent
: {
: private:
: Handle PortHandle;
: }
:
: class TSerialThread : public TThread
: {
: friend class TSerialCompo;
: :
: :
: }
: 이런식으로 선언을 하구요.. TSerialThread의 함수에서 TSerialCompo의 PortHandle이라는
: 변수를 불러와야 되는데, friend를 써서 얻어올 수 있는 방법이 없을까요?
: TSerialThread클래스 내에 TSerialCompo SerialCompo; 라고 선언하고 쓰레드 함수내에서
: SerialCompo->PortHandle이라고 해도 에러가 나고
: PortHandle을 전역변수로 두어도 에러가 나는군요..
: 그래서 꼭 friend를 써서 얻어올 수 있는 방법을 구하고 싶은데, 방법이 없을까요?
: 부탁드려요
:
:
|