2017-02-01 20 views
-1

私は3つの関数で定義するクラスを持っていますinline void initialiseOutputPath()inline void saveColourImage()およびinline void saveDepthImage()です。複数の関数で使用するC++コピー文字列

initialiseOutputPath()では、画像を保存するディレクトリへのパスが作成されますが、他のパラメータを設定する別のinitialise()関数内にネストされているので、この関数からこれをどのように抽出するのかはわかりません。

他の2つの関数への入力として使用するためにinitialiseOutputPath()からコピーされた文字列を保持できる同じクラスに変数 'path'を作成する方法はありますか?

私はいくつかのC++の知識を持っていますが、これは本当に私を困惑させ、助けや助言、ポインタなど... ...ありがとうございます。

+2

異なる機能で共有できるメンバー変数をクラスに追加できるかどうか尋ねていますか? – NathanOliver

+0

メンバ変数を完全に忘れてしまった、ありがとう、Nathan! –

答えて

1

私はこの機能

これは、値がためのものです返すものですから、これを抽出する方法がわからないと思います。このようにパスを返し、定義内で

inline std::string initialiseOutputPath() 

::への宣言を変更

return some_expression; 

あなたは、このように値を "引き出す" ことができます。

std::string out = initialiseOutputPath(); 

この文字列は、することができ入力パラメータを受け入れると仮定して、他の関数への入力として使用されます。

saveColourImage(out); 
0

あなたの質問から、私はあなたがその場合

inline void initialiseOutputPath(); 

機能からパスを取得したいと仮定しています、私はそれが値を返すことができるようにあなたは、この関数の宣言を変更することをお勧めしますデータ型は文字列です。

inline string initialiseOutputPath(); 

(注:そうすることで、あなたは宣言のこの種を持っているでしょう、私は通常、名前空間stdを使用して線を含めるように私はのstd ::が含まいけない;を自分のコードの先頭に。 )

このようにして、ファイルのパスを文字列型の文として返すことができます。次のメソッドを使用し、文字列を保存するか、または「コピー」するには

// 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. 

initialiseOutputPath()からこれを実行するには、敷居は次のように、パスを格納する文字列を含んでreturn文を含める必要があります:

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();からのパスを取り、上記2に_file_path_変数を渡すことができますし、あなたの他の2つの機能の宣言を変更する必要があります。またう

次のように機能:

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

この方法で、所望の経路は、それを使用する関数に(単語のお粗末な選択のために申し訳ありません)、「作る」という関数から渡されます。

これが役に立った。

関連する問題