状態の保持とは? わかりやすく解説

状態の保持

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/03 01:18 UTC 版)

関数オブジェクト」の記事における「状態の保持」の解説

関数オブジェクト利点一つは、関数呼び出しまたいで状態を(オブジェクトフィールドとして)保持できる点である。たとえば、下記コード10上の数を数えジェネレータ(引数とらない関数)を定義し11呼び出し結果出力している。 #include #include #include class countfrom {private: int count;public: countfrom(int n) : count(n) {} int operator()() { return count++; }};int main() { std::generate_n(std::ostream_iterator(std::cout, "\n"), 11, countfrom(10)); return 0;} 関数オブジェクトで状態を保持する場合、明示的にメンバー変数を定義したうえで、関数オブジェクトのメンバーとして操作を記述しなければならなかった。C++11で導入されたラムダ式では、外部の変数のキャプチャをサポートし、クロージャを実現することができる。ラムダ式によってキャプチャされた変数は、コンパイラによって暗黙的に生成される関数オブジェクトのメンバー変数となる。

※この「状態の保持」の解説は、「関数オブジェクト」の解説の一部です。
「状態の保持」を含む「関数オブジェクト」の記事については、「関数オブジェクト」の概要参照ください


状態の保持

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/05/16 22:12 UTC 版)

Visitor パターン」の記事における「状態の保持」の解説

Visitor パターン関心の分離をより進展させる可能性があるが、加えて単純に多態的なメソッド呼び出す以上の利点として、Visitor パターンでは状態を持つことができる。これは、オブジェクトに対して実行されるアクション以前アクション依存するような多くケース極めて有用である。 この例は、pretty-printer のプログラミング言語 による実装(コンパイラインタプリタによる)である。pretty-printer オブジェクト (本例では Visitor として実装されている)は、パースされ、処理されデータ構造内のノード巡回する。pretty-printer は次に、プログラムツリーのテキストによる表現生成する出力人間可読なものにするために、pretty-printer はプログラムの文や表現適切にインデントなければならない。「現在のインデント幅」が visitor により状態の一つとして追跡され単純な多態的な関数呼び出しとして、カプセル化正しく行われインデント幅はパラメータとして公開され呼び出し者はこのパラメータ正しく使用するためのメソッド実装信頼する

※この「状態の保持」の解説は、「Visitor パターン」の解説の一部です。
「状態の保持」を含む「Visitor パターン」の記事については、「Visitor パターン」の概要を参照ください。

ウィキペディア小見出し辞書の「状態の保持」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「状態の保持」の関連用語

状態の保持のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



状態の保持のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの関数オブジェクト (改訂履歴)、Visitor パターン (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS