ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
無料
ブラウザよりも高速アクセス!
 

C++11と関数へのポインタ

ショートカット: 違い類似点ジャカード類似性係数参考文献

C++11と関数へのポインタの違い

C++11 vs. 関数へのポインタ

C++11は、プログラミング言語 C++ のISO標準 ISO/IEC 14882:2011 の略称である。規格の策定中は2009年中の標準化を目指していたため、C++0x という仮称で呼ばれていた。 ISO/IEC 14882:2003 (C++03) に代わるものとして、2011年8月12日にISOによって承認された。後継のC++14が2014年8月18日に承認されている。 コア言語への機能追加や標準C++ライブラリの拡張を施し、C++TR1ライブラリの大部分を(数学的特殊関数ライブラリを除いて)取り込んでいる。. 関数へのポインタは、多くのプログラミング言語におけるポインタの一種である。関数へのポインタをデリファレンスすれば、そのポインタが指し示す関数(サブルーチン)を呼び出せる。関数へのポインタを使えば高階関数を作ることができる。 関数オブジェクトは、関数へのポインタに似ているが、コード領域中のエントリポイントを指す単なるポインタである関数へのポインタと違い、データ領域上に実体を持つオブジェクトであるという点が異なっている(実装の詳細は言語や処理系により異なるが)。そのため、関数オブジェクトはデータを保持でき、クロージャを再現することもできる。ゆえに、関数オブジェクトは、「関数へのポインタ」ではなく「関数」という型と値を持つようなものと言え、より強力である。 Javaなどでは、関数へのポインタを使用できないが、そのような言語では、メソッドを1つだけ持つインタフェースで同様のことを行える。また、C#やVisual Basic.NETなどといった.NET Framework用の言語には、デリゲートがある。 第一級オブジェクトとして関数を使用できる(第一級関数がある)言語では、関数も引数で渡したり、戻り値で返したり、他の関数から動的に作成したりできるなどデータ同様に扱えるため、関数へのポインタは必要とされない。.

C++11と関数へのポインタ間の類似点

C++11と関数へのポインタは(ユニオンペディアに)共通で5ものを持っています: ポインタ (プログラミング)クロージャC Sharp関数オブジェクトJava

ポインタ (プログラミング)

ポインタ (pointer) とは、あるオブジェクトがなんらかの論理的位置情報でアクセスできるとき、それを参照する(指し示す)ものである。有名な例としては Pascal のポインタが挙げられる。 なお、C++では、さらに独立した「参照」という機能がある。.

C++11とポインタ (プログラミング) · ポインタ (プログラミング)と関数へのポインタ · 続きを見る »

クロージャ

ージャ(クロージャー、closure)、関数閉包はプログラミング言語における関数オブジェクトの一種。いくつかの言語ではラムダ式や無名関数で実現している。引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決することを特徴とする。関数とそれを評価する環境のペアであるともいえる。この概念は少なくとも1960年代のSECDマシンまで遡ることができる。まれに、関数ではなくとも、環境に紐付けられたデータ構造のことをクロージャと呼ぶ場合もある。クロージャをサポートした言語のコーディングでは、関数の中に関数を定義することができる。その際に、外側の関数で宣言された変数を内側の関数で操作することができる。主な利点としてはグローバル変数の削減が挙げられる。 典型的にはクロージャは、外側の関数(以下、エンクロージャ)の内側の関数リテラルや、ネストした関数定義によって必要になる。言語により、そのような内側の関数内に出現する自由変数(内側の関数の仮引数でもなく、内側の関数自身のローカル変数でもない変数)の扱いは異なるが、自由変数が、その呼び出しにおけるエンクロージャのその名前の変数を、レキシカルに参照するのがクロージャであり、実行時に外部の関数が実行された際、クロージャが形成される。クロージャは内部の関数のコードとエンクロージャのスコープ内の必要なすべての変数への参照からなる。 クロージャはプログラム内で環境を共有するための仕組みである。レキシカル変数はグローバルな名前空間を占有しないという点でグローバル変数とは異なっている。またオブジェクトのインスタンス変数とは、オブジェクトのインスタンスではなく関数の呼び出しに束縛されているという点で異なる。 クロージャは関数型言語では遅延評価やカプセル化のために、また高階関数の引数として広く用いられる。 例: クロージャを使ったカウンタの例を Scheme で示す。 (define (new-counter) (define c (new-counter)) (display (c)); 1 (display (c)); 2 (display (c)); 3 関数 new-counter の中でクロージャが使用されている。c に代入された無名関数は new-counter 内のローカル変数 count を参照している。c を呼び出すたびに count はインクリメントされていく。.

C++11とクロージャ · クロージャと関数へのポインタ · 続きを見る »

C Sharp

C#(シーシャープ)は、アンダース・ヘルスバーグが設計(デザイン)したプログラミング言語であり、構文(syntax)は(名前にもある通り)C言語や、C言語風に構文が設計されたC++やJavaなどの影響があるが、構文以外についてはヘルスバーグが以前の所属であるBorlandで設計したDelphiからの影響がある。 Microsoftによる謳い文句としては、マルチパラダイムプログラミング言語、強い型付け、命令型、宣言型、手続き型、関数型、ジェネリック、オブジェクト指向の要素を持つ、などといった点が強調されている。 CLIといった周辺も含め、Microsoftのフレームワーク「.NET Framework」の一部である他、VJ++で「非互換なJava」をJavaに持ち込もうとしたような以前のMicrosoftとは異なり、その多くの仕様を積極的に公開し標準化機構に託して自由な利用を許す(ECMA-334、ISO/IEC 23270:2003、JIS X 3015)など、同社の姿勢の変化があらわれている一面でもある(実際に「Mono」という、フリーソフトウェアの定義に合致したライセンスの、コミュニティによる実装がある)。.

C SharpとC++11 · C Sharpと関数へのポインタ · 続きを見る »

関数オブジェクト

関数オブジェクト(かんすうオブジェクト、function object)は、プログラミング言語において、関数(サブルーチンないしプロシージャ)を、オブジェクトとしたものである。手続きオブジェクトとも言う(プロシージャ=手続き)。なお、ここでのオブジェクトの語は、いわゆるオブジェクト指向のそれに限らず、「第一級オブジェクト」という語におけるのと同じ、メモリ上に空間を確保されたもの、といった意味である。関数が第一級オブジェクトである場合は特に第一級関数と言う。 関数と変数の名前空間が共通である言語の場合、構文の設計によっては、a.

C++11と関数オブジェクト · 関数へのポインタと関数オブジェクト · 続きを見る »

Java

Java(ジャバ)は、狭義ではプログラミング言語Javaを指す。広義では言語仕様以外にも、仕様が与えられているJavaクラスライブラリやJava仮想マシン、さらにはJDKやJREなどの公式のものをはじめとする、場合によってはサードパーティのものなどを含め曖昧にJavaプラットフォームと総称されるようなものなどのエコシステムなどを指すこともある。構文についてはJavaの文法の記事を参照。.

C++11とJava · Javaと関数へのポインタ · 続きを見る »

上記のリストは以下の質問に答えます

C++11と関数へのポインタの間の比較

関数へのポインタが15を有しているC++11は、78の関係を有しています。 彼らは一般的な5で持っているように、ジャカード指数は5.38%です = 5 / (78 + 15)。

参考文献

この記事では、C++11と関数へのポインタとの関係を示しています。情報が抽出された各記事にアクセスするには、次のURLをご覧ください:

ヘイ!私たちは今、Facebook上です! »