2017-02-01 22 views
-1

我有一個類,我在其中定義了三個函數inline void initialiseOutputPath(),inline void saveColourImage()inline void saveDepthImage()用於多種功能的C++複製字符串

initialiseOutputPath()initialiseOutputPath()創建了一個保存圖像的目錄路徑,但我不確定如何從此函數中提取此信息,因爲它嵌套在另一個設置其他參數的initialise()函數中。

有沒有什麼辦法可以在同一個類中創建一個變量'path',它可以容納從initialiseOutputPath()複製的字符串,以便用作其他兩個函數的輸入?

我有一些C++的知識,但這真的難倒我和任何幫助,建議或...指針......將不勝感激。

+2

你問是否可以在你的類中添加一個可以被不同函數共享的成員變量? – NathanOliver

+0

完全忘了會員變數,謝謝Nathan! –

回答

1

我不確定如何從這個函數

這是返回值是提取此。更改聲明:

inline std::string initialiseOutputPath() 

內定義,這樣的返回路徑:

return some_expression; 

然後,您可以 「提取」 像這樣的值:

std::string out = initialiseOutputPath(); 

此字符串可以用作其他功能的輸入,假設它們接受輸入參數:

saveColourImage(out); 
0

從你的問題,我假設你想從功能

inline void initialiseOutputPath(); 

在這種情況下獲取路徑,我會建議你改變這個函數的聲明,以便它可以返回一個值的數據類型字符串。在我的代碼的頂部;我不包括的std ::我通常包括使用空間std行:這樣一來,你就必須這樣聲明:

inline string initialiseOutputPath(); 

(注。 )

這樣,文件的路徑可以作爲字符串類型的句子返回。若要從initialiseOutputPath()這樣做,你窗臺必須包含一個return語句,其中包括字符串存儲路徑,如:

// do stuff and then store PATH of file in a variable called "path"; just for an example 
    return path; // wherever the function is invoked, this string will be passed to the calling function. 

要保存,或「複製」字符串,用下面的方法:

string file_path = initialiseOutputPath(); 

現在從initialiseOutputPath()存儲在該變量,調用函數的一部分返回的路徑。

您也將有你的其他兩個函數的聲明更改爲:

void saveColourImage(string path_of_file); // Any name for the input parameter variable works 
    inline void saveDepthImage(string path_of_file); // Like above, any name for the input parameter variable works 

這樣,你就可以從該行string file_path = initialiseOutputPath();路徑和_file_path_變量傳遞給上述2新申報以如下方式功能:

void saveColourImage (file_path); 
    inline void saveDepthImage (file_path); 

這樣,所期望的路徑將被從功能通過了「使」它(抱歉詞彙的差的選擇),以將使用它的功能。

希望這有助於。