如何复制类变量并调用另一个文件

时间:2013-09-04 13:43:34

标签: c++

在我的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天时间搞清楚了。 非常感谢你的时间。

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;
}

希望这会有所帮助。如果这不包括您的问题,请提供更多详细信息。