在我的main.cpp
中void MainWindow::onFinish( ImageResult* result )
m_ImageIdResult = *result;
m_Result = m_ImageResult.AllMetadata;
现在我想在另一个display.cpp文件中使用m_Result。如何复制m_result以便我可以在其他文件中使用它。我尝试了以下内容,因为我在display.h的头文件中有m_Display
m_DisplayModel->howtodefinethisfunction(m_Result, asset-> );
我很抱歉这个基本问题,我已经不幸了,花了2天时间搞清楚了。 非常感谢你的时间。
答案 0 :(得分:2)
最简单的方法是将其作为函数参数传递:
some_func_in_display_cpp_file(m_Result, /* other parms ... */);
并将函数定义为:
return_type some_func_in_display_cpp_file(const m_result_type&, /* ... */) {
答案 1 :(得分:0)
函数参数是传递它的最简单方法。我不确定你在这做什么:
m_DisplayModel->howtodefinethisfunction(m_Result, asset-> );
对于第二个参数,您似乎有一个指向任何内容的指针。这会给你一个编译错误。但是如果你想要如何定义函数的确切语法,如果你在MainWindow类中声明了m_Result:
CoolResult m_Result;
然后你会在DisplayModel中声明这个函数:
public:
void DoSomethingWithResult( CoolResult result );
然后你可以从你的MainWindow类中调用它:
void MainWindow::onFinish( ImageResult* result )
m_ImageIdResult = *result;
m_Result = m_ImageResult.AllMetadata;
// this will probably be declared somewhere else in real code
DisplayModel display;
display.DoSomethingWithResult( m_Result );
但是如果你想要从MainWindow获得DisplayModel的结果,你将在MainWindow(MainWindow.h)中创建一个getter:
public:
CoolResult GetResult();
MainWindow.cpp:
CoolResult MainWindow::GetResult()
{
return m_Result;
}
希望这会有所帮助。如果这不包括您的问题,请提供更多详细信息。