0

在我的 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 天时间才弄清楚。非常感谢您的时间。

4

2 回答 2

2

最简单的方法是简单地将其作为函数参数传递:

some_func_in_display_cpp_file(m_Result, /* other parms ... */);

并将函数定义为:

return_type some_func_in_display_cpp_file(const m_result_type&, /* ... */) {
于 2013-09-04T13:51:36.147 回答
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();

主窗口.cpp:

CoolResult MainWindow::GetResult()
{
    return m_Result;
}

希望这可以帮助。如果这不涵盖您的问题,请提供更多详细信息。

于 2013-09-04T14:05:07.477 回答