이것이 기본적인 C++ 질문입니다.하지만 한 클래스에서 function/pass 값 (elementId)을 어떻게 호출 할 수 있습니까? 친구 기능을 사용하여 다른 바다에서?C++ friend 함수를 사용하여 한 클래스에서 다른 클래스로 함수/패스 값을 호출하는 방법
내 양식 클래스에는 listView가 있고 listView의 항목을 클릭하면 elementId를 detailedForm에 전달하여 (detailedForm의) 레이블에 정보를 표시하고 싶습니다. 내 form.h 및 .cpp에 detailedForm.h를 포함 시켰습니다. 정보를 표시하는 detailedForm의 함수에 어떻게 액세스합니까? form.h에서, 나는 또한
friend class detailedForm;
을 선언 한 내 폼 클래스, 즉 displayInfo()에 detailedForm의 기능 중 하나를 사용하려고 할 때, 폼 클래스에 displayInfo()가 선언되지 않았다는 오류가 있습니다.
public:
...
void DisplayLabel(void);
코드
void
ChartFormDetail::DisplayInfo(void)
{
pLabel->SetText("Text here");
RequestRedraw();
}
detailedForm.cpp
은 여기
...
public:
friend class ChartFormDetail;
form.cpp
#include "Form.h"
#include "ChartFormDetail.h"
...
void
Form::OnGroupedListViewItemStateChanged(Osp::Ui::Controls::GroupedListView &listView, int groupIndex, int itemIndex, int elementId, Osp::Ui::Controls::ListItemStatus state)
{
Frame* pFrame = Osp::App::Application::GetInstance()->GetAppFrame()->GetFrame();
FormMgr* pFormMgr = dynamic_cast<FormMgr*> (pFrame->GetControl("FormMgr"));
if(pFormMgr == null)
return;
pFormMgr->SendUserEvent(FormMgr::REQUEST_DETAILFORM, null);
//pFormMgr->SendUserEvent(elementId, null);
switch(elementId)
{
case ID_FORMAT_STRING_M12:
DisplayLabel();
break;
...
case ID_FORMAT_STRING_F19:
DisplayLabel();
break;
}
}
내 코드가 detailedForm.h
입니다 form.h
관련 코드를 게시하십시오. 문제와 관련이없는 것을 남겨 두십시오. –
안녕하세요, 위와 같이 코드를 게시했습니다. 감사! – Winona
당신은'displayInfo'를 호출 할 때 에러가 발생한다고 말했지만, 게시 한 코드에는'displayInfo'에 대한 호출이 없습니다. –