C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++ 11で導入された新しい変更は何ですか?


C ++ 11は、標準のC++言語のバージョンです。これは、2011年8月12日に国際標準化機構(ISO)によって承認され、その後C++14およびC++17で承認されました。 C ++ 11は、コア言語にいくつかの追加を行います。

C++11で導入された新しい変更のいくつかがあります-

  • nullptr −以前のnullptrでは、ゼロが値であり、整数値への暗黙の変換という欠点がありました。 nullポインタリテラルはstd::nullptr_tで表されます。このnullptrには、暗黙の変換は存在しません。

  • ラムダ −ラムダ式を使用すると、関数をローカルで定義できます。匿名関数はラムダとして知られています。関数オブジェクトstd::functionが期待される場所ならどこでもラムダ式を使用できます。

  • スマートポインタ −スマートポインタauto_ptrが唯一のスマートポインタでしたが、現在は非推奨です。 C ++ 11には、他に3つのスマートポインターが追加されています。つまり、shared_ptr、unique_ptr、weak_ptrです。

  • 自動 −以前のバージョンでは、オブジェクトのタイプを指定する必要がありましたが、C ++ 11では、タイプを指定する必要はありません。つまり、タイプを指定せずに変数を直接宣言できます。

  • オーバーライドとファイナル −バージョンC ++ 11では、2つの新しい特別な識別子(overrideとfinal)が導入されました。オーバーライドは、メソッドが基本クラスの仮想メソッドのオーバーライドであると想定されていることを示します。一方、finalは、派生クラスが仮想メソッドをオーバーライドしてはならないことを示します。

  • 削除された関数とデフォルトの関数 −削除された関数は、オブジェクトのコピーを防ぐのに役立ちます。コピーを無効にするには、「=delete; " 使用されている。デフォルト関数は、関数のデフォルト実装を生成するようにコンパイラーに指示し、「=default;」はデフォルト関数に使用されます。

  • 範囲ベースのforループ − C ++ 11では、コレクションを反復処理するための範囲ベースのforループが導入されました。これで、C配列のように繰り返すことができます。反復の「foreach」パラダイムをサポートします。

  • 強く型付けされた列挙型 −従来の列挙型では、それらは周囲のスコープで列挙型をエクスポートするために使用されていました。それらは「列挙型クラス」キーワードとして指定されます。列挙子を周囲のスコープにエクスポートしません。

  • Static_assertとタイプ特性 −コンパイル時にアサーションチェックを行います。アサーションがtrueの場合、何も表示されません。それ以外の場合は、エラーメッセージが表示されます。

  • 新しいC++アルゴリズム − C ++ 11標準ライブラリは、all_of()、any_of、none_of()などのいくつかの操作を備えた新しいアルゴリズムを導入しました。


  1. Cのトークンは何ですか?

    トークンは、コンパイラにとって意味のあるプログラムの最小要素に他なりません。プログラムを最小単位に分割するコンパイラはトークンと呼ばれ、これらのトークンはコンパイルのさまざまな段階に進みます。 タイプ トークンはさまざまなタイプに分類されます。以下に説明します- キーワード 識別子 定数 文字列 特別な記号 オペレーター 例 以下に示すのは、Cプログラムの識別子、キーワード、変数などの使用です。 。 #include <stdio.h> int main(){    int a,b,c;    printf("ente

  2. Cプログラミングの関数のさまざまなカテゴリは何ですか?

    引数が存在するかどうか、および値が返されるかどうかに応じて、関数は-に分類されます。 引数も戻り値もない関数 引数なしで戻り値のある関数 引数ありで戻り値のない関数 引数と戻り値を持つ関数 引数と戻り値のない関数 例 #include<stdio.h> main (){    void sum ();    clrscr ();    sum ();    getch (); } void sum (){    int a,b,c;   &