2020年3月1日

CF +補充:4時間

2時間:++第8章、および関連するコードに精通ノックCレビュー

/// C ++章第VIII 
の#include stdio.hの
の#include string.hの
の#include のiostream 
の#include アルゴリズム
使用して 名前空間STD;
 /// インラインその機能インライン関数、参照パラメータを示しますパラメータ
 /// 同時にあなたは値が基準関数パラメータは、フォームSQUARE1の関数として記述することができます変更したくない
 /// WORK1参照されているこの機能のための 
インラインint型スクエア(INTX)
{ 
    int型&Z = ; X
     リターン Z = Zを* Z; 
} 
インラインINT SQUARE1(CONST INTX)
{ 
  ///   INT&Z = X;   /// この文は、xの変化の同じ値が間違っている、間違っています。
    /// コンパイラは、xの値が変更を禁止します。
    INTの Z = X; /// この可能
    リターン   X * Z; 
} 
 
/// この一時変数との関連機能 
インラインボイド swapr1(INT&A、INT&B)/// 、B値交換
{
     int型の TEMP = Aを; A = B; B = A;
     リターン; 
} 
インラインボイド swapr2(ロング ロング&A、ロング ロング B)
{
    ロング ロング TEMP = A; A = B; B = TEMP; リターン; 
} 
インラインINT swapr3(CONST  INT&A、CONST  INTB)
{ 
    /// 以下の理由の使用を奨励CONST
     /// 不注意使用CONSTを回避するために、1データの誤りをプログラミング変更します。
    /// 2、関数はCONST CONSTと非const引数を用いて治療することができるようになります。それ以外の場合は、唯一の非constデータを受け入れます。
    /// 3ので、関数はCONST参照及び一時変数の正しい使用を生成するために使用することができることを
    返す A + B; 
} 
 
/// これは参照構造及び動作に関連する機能である
構造体ノード{
     チャー名[ 26である];
     チャー引用[ 26であるが];
     Intが使用され; 
}; 
constのノードと使用(ノードとノード)
{ 
    /// このエイリアスノード、参照
     /// 帰還基準値は、これは:
     /// 1、戻り値は、機構にコピーされ、戻り一時記憶領域は、その後、呼び出し側は、この領域にアクセスします。
    /// しかし、呼び出し元のプログラムへの復帰をコピーすることなく、直接、戻り値にアクセスすることを意味します。
    /// 一般的には、参照への参照はとても機能を呼び出すと、実際に独自の変数に直接アクセスされ、関数に渡されます。
    /// コピーが行われていないので、それは速くなります。
    ///は、メモリユニットがもう存在しないときに、関数が終了しない場合に返されないように注意する必要があります。
    node.name << <<裁判所未満" (PIC):\ N- " ; 
    coutの << node.quote << てendl; 
    coutの << てendl; 
    node.used ++ ;
     リターンノード; 
} 
 
/// スイッチング関数テンプレート 
テンプレートを< クラス任意>
 ボイド(任意&A、任意&B)スワップ///はまた、テンプレートとして書き込まれる<あとにtypename> 
{ 
    どれTEMPと、TEMP = A; A = B; B = TEMP ; 
} 
テンプレート <型名任意>
 ボイドスワップ(任意&A、任意&B、任意&C)
{ 
    どれTEMP; TEMP = C、C = B; B = A; A = TEMP; 
} 
ボイド WORK1()/// この関数&で動作
{ 
    のprintf(" 本明細書に関連する動作として引用:\ N- " );
     int型X; 
    scanfの("%のD、およびX);
     INT Y = スクエア(X);
     INT&Z = X; /// 参照パラメータの割り当てを初期化する必要があり、かつ参照のみを決定した後、再び上の他の変数を参照しないで、一度割り当てることができます
     / // コードは実際* CONST Z =をINT&Xは、迷彩が表す 
    のprintf(" X =%のDy =%DZ =%D \ N- " 、X、Y、Z)を; 
    のprintf(" X =%XY =%XZ X%= \ N- "、およびX&Y、およびZ); /// 同じアドレスXとZ、Y、INT部差は、スタックは、彼が確認されている
 
} 
ボイド WORK2()/// 一時匿名変数(参照)
{ 
    のprintf(ここにあなたの一時的な関連操作匿名変数です:\ n-は);
    ロング ロング Aは= 。3、B = 4は/// swapr1(A、B);このステートメントは、説明するint型のswaprの機能は入力しない参照データをLONGLONGため
    INTは X = 5、Y =を6。;
     /// swapr2( x、y)は、同一のパラメータタイプをLONGLONG、データ型は参照できないINT
     /// 参照型は、理由をキャストしない:タイプが同じでない場合
     /// 作成するコンパイラの暗黙的な変換、および関数の引数一時的な匿名の変数の同じタイプ
     /// 参照の後、関数パラメータ、2つの匿名の一時変数へのポイント
     /// 私たちが望む効果を達成するために、一時的な匿名の変数に最後の引数のポイントにつながる
     // / この操作は緩いC ++早い段階で可能です。
 
    /// 一時変数の3例匿名の発生、3つの基準を入力する必要がありCONSTでしばらく
    INT = swapr3(A、B)S; /// この動作は同じ参照LONGLONG変数intで
     /// 可能であるため、 const型としての機能パラメータは、それが値を変更することができなかったと述べました。
    ///したがって、この場合には、一時的な基準点は、匿名の変数です
    INT S1 = swapr3(67); /// この呼び出し、匿名の一時変数のない6,7アドレスので、同じ変数一時的に匿名が存在することになる
    INT S2 swapr3 =(A + 1、B); // / 全く式a + 1つのアドレスがないので、この変数は、一時的な匿名を発生する
 
    のprintf(" %LLD LLD%\ N- " 、A、B)
    のprintf(" %のD%=%DS%D = D S1 S2 %D = \ N- "X、Y、S、S1); 
} ボイド WORK3()/// 参照構造に関する動作{ 
    printf関数は、(" 本明細書に引用構造が関連する操作である:\ N- " ); 
    COUT << この機能は、3つの異なる場所を持っている << てendlを。


    COUT << " 1、用途(ノード)を表示することによって構造への参照を使用して。" << ENDL; 
    COUT << " 2、戻り値として参照" << ENDL; 
    COUT << 。3、関数呼出し用途によって構造部材へのアクセス(ノード).used表示" << ENDL、
 
    ノードノード = { " リック" " I LOVE YOU " 0 
    }; 
    使用(ノード); 
    COUT << " ノード:" <<ノード。 <<使用されます"使用(S)\ nは"  ;
    ノードのノード1。
    ノード1 = 使用(ノード)。
    裁判所未満 << " ノード:" << node.used << " を使用(S)\ n個" ; 
    裁判所未満 << " ノード1:" << node1.used << " を使用(S)\ n個" ; 
    COUT << " 使用(ノード):" <<使用(ノード).used << " 使用(S)\ n " /// 使用はCONSTため、基準戻り型の違いがあります。
    /// この構造は、ノード自体がCONSTであるが、唯一の手段は、という意味ではないので、このCONST
     /// その構造を変更するための参照を返すために使用することができないが、直接指摘しました。constとして保存、次の文を出現することができるかもしれない
    ///、A、B、C)。使用(ノード)は、10 = .used;もちろん、これは何も間違っています。
    /// (ノード)を使用することと等価; = 10 node.used;
     /// 要するに、CONST後セーブ、より短いが、より多くの潜在コードを記述することができるであろう。
    リターン; 
} 
ボイド WORK4()/// 関数テンプレート
{
     int型のX、Y、
    X = 6、Yが= 19 ; 
    スワップ(X、Y); 
    INT A = 1、B = 3、Cは、= 5。 
    スワップ(A、 B、C); 
    のprintf(" X%=%のDy = D \ N- " 、X、Y); 
    のprintf(" A%= DB%= DCの%= D \ N- "
} 
int型メイン()
{ 
   WORK1()。
   WORK2(); 
    WORK3(); 
   WORK4(); 
}

ビデオ+ Javaの仕事:1時間

 

おすすめ

転載: www.cnblogs.com/yrz001030/p/12393533.html