私はコミュニケーションのプロセスの一部、レッツ・レビュー何C ++を置くために持っているので、C ++の内容を確認する方法がない場合には、インタビューは今日は多くのことを頼まれた、どのようにできないの答えは、最高でした。
1.linux環境下でのC ++。
最初のC ++プログラム
する#include <stdio.hに> する#include <iostreamの> int型のmain() { のprintf(" Hello Worldの\ n "); // C语言写法 のstd :: アウト << " ハロー" << " 世界" <<はstd ::てendl; // C ++写法リターン0 ; }
C ++プログラムでは、Linuxシステムのコマンドでコンパイル:G ++ -oハローHELLO.CPP
(1)サフィックスC ++ファイル:.cppファイル.CXX .ccに.HPPの.h
(2)C ++ヘッダファイル:標準C ++ヘッダファイルは、入出力ストリームとして、何.Hではありません。
1.あなたが追加したときに、C言語の標準ライブラリ関数にC ++を使用したい場合は、ファイルのヘッダが削除された.Hべきであり、cはstdio.hなど、前に追加された------> cstdioを
2.追加したときにも、C言語のヘッダファイルを指定することができます
extern「C」{の#include <add.h>}
(3)C ++プログラムでは、coutのは、CERR、詰まりオブジェクトは(C言語の標準入力ファイル、標準出力、標準エラー出力に類似)が自動的に作成されたCIN、ユーザーは、もはや新しいのIStreamのostreamオブジェクトまたはオブジェクトを作成することはできません。
std :: CIN >>変数など:INT A、ダブル B;のstd :: CIN >> A >> B; STD :: COUT <<変数/定数例:INT A = 12であり、ダブル B = 10.1 ; STD ::裁判所未満<< << "" << B <<はstd ::てendl;
2.C ++ Cさんへの拡張
ヒープ領域を割り当てます
(1)を適用し、リリースのmalloc ---ユーザ独自のアプリケーション空間とリリースでは、C言語での空きスペース
アプリケーションおよびCに新しい-----削除(2)スペースを解放する++
アプリケーションフォーマット: データ型 * P = 新たな新しい データ型 など: CHAR * P = 新しい新しい charが ヒープ空間内チャーオブジェクト空間(1バイト)を適用 チャー * P = 新しい新しい 文字(「A」)及びバイト空間を適用します初期化 チャー * P =(CHAR *)はmalloc(1 ) CHAR * P = 新しい新しい チャー [ 100アプリケーション・ヒープ領域には] 100文字オブジェクト- 配列 放出形式: 削除ポインタ; 例えば: 削除Pを; //はのみ適用CHARオブジェクト 削除[] P; // フリー連続空間(オブジェクト空間100放出)
新しいとC言語のmalloc関数を削除して、Cでの類似点と相違点の自由++
(1)空間が連続している、ヒープスペースを申請することができます。
(2)新たなコンストラクタは、+ malloc関数と等価です
(3)削除デストラクタが無料+に対応します
名前空間
役割:避け関数、変数、紛争の種類、競合を避けることができたときに、クロス開発します。
名前空間スペース名{ メンバー(非メイン関数、変数、定数、構造、等) }。
名前空間のclass01 { 文字列ジャック。 文字列はバラ。 }。 名前空間のclass02 { 文字列ジャック。 文字列はバラ。 }。 INT メイン() { class01 ::ジャック = 「classs01Jack」。 class02 ::ジャック = 「class02Jakc」。 }
メンバーは、スペースの使用します
1.直接メンバースペースを使用する::
class01 ::ジャック=「classs01Jack」。
2.指導インジケータを使用して
使用して 名前空間の class01; // すべてのグローバルゾーンにさらさスペースメンバーclass01 // 文字列ジャック= ""; int型のmain() { ジャック = "classs01Jack"; // ジャックをclass01の属する内部 class02 ::ジャック=「class02Jakcを「; // ジャック内class02に属します }
3. usingステートメントのメンバー
使用 class01 ::ジャック; // 文字列は、現在のファイルに定義されている現在位置ジャックのコピーを作成するために同様のジャックclass01空間; int型のmain() { ジャック =「classs01Jack」; // ジャック内部属するclass01 class02 :: =ジャック"class02Jakc"; // ジャック内部に属するclass02 }
名前空間
1.ネストされた名前空間
名前空間AAA { 名前空間BBB { 文字列名; } } // スペースでネスト // 名前に // AAA :: :: BBBに名前を付けます
2.同じエリア内の同じ名前空間に属し、同じ名前空間の同じ名前空間、
// 同じ名前の名前空間-空間で(同じ領域)属する 名前空間CCC { INT数= 123 ; }; 名前空間CCC { int型データ= 321 ;; }
宇宙空間スペースは匿名のスペースを除いて、名前に追加する必要があり、使用する3.匿名のメンバーは、現在のドキュメント内の匿名のスペースのメンバーは、(現在のファイルのみに)直接使用することができます
名前空間{ int型のmyage。 }
引用文
アプリケーションは、変数または定数の別名です。
int型 = 10 ; int型 * p =&;
定義:データタイプ=&参照変数
データ・タイプ&変数/定数へ= const参照
int型 = 10 ; INT&B =; Bは、Aへの参照であります
基準特徴:
1 | 参照は、メモリ空間、および共通スペースの参照オブジェクトを取りません。 |
2 | 参考文献は、参照されたオブジェクトのデータ型と一致する必要があります |
3 | 定義を参照する場合は初期化する必要があります |
4 | 参照がオブジェクトのみを参照することができ、オブジェクトは複数回参照することができ、参照が再び参照されます |
5 | オブジェクト参照が一定であれば、基準は、CONSTによって修正されなければなりません |
これは、引数として引用しました
値によって2.住所3.パス・パス参照を1:モードを渡すパラメータ機能
ボイドスワップ(INT&、INT&B) { int型、T = A。= B; B = T。 } int型 = 123、B = 456。スワップ(B)
const参照の変更
const int型、A = 100 ; const int型&B = ; CONST INT&C = 123。
CONSTは、グローバル変数の修飾 のconst int型のサイズ= 100 ; // 読み取り専用データセグメントに格納された CONSTは、ローカル変数を修飾 CONST INT PSIZE = 200であり ; // データは、スタック空間に格納されている INT * P =(INT *)&PSIZE; // P点PSIZE空間は、シンボルのコピーである* pが修正することができるが、PSIZE自体は変更しない * P = 20であり、 COUTは << * Pは、<< "" << ENDL << PSIZE; ==> 20であり、200です。
C ++は、ほぼ一定のCONST修飾マクロの代わりに使用され
#defineサイズ100 ==>のconst int型のサイズ= 100。
使用チェックデータ型で、マクロが定義されていない場合1 CONSTは定数を変更し(直接交換)
使用中に、複数のマクロにスペースが割り当てられた場合にのみ割り当てられた後、2 constが一定の間隔を変更しました
3. CONST変更されたデータが最適化されます
修正に言及するとき、関数のパラメータが使用されている--- constが参照されたオブジェクトの値がそうでない場合は、その後、我々はconst参照パラメータの変更を追加する必要がある関数内で変更され、その結果、コンパイラはエラーを指摘することができます。
int型の追加(CONST INT&、CONST INT&B) { // ++。 返す +のBを、 }
関数のオーバーロード
定義:関数名と同じ関数パラメータリスト、機能のこのシリーズは、関数のオーバーロードと呼ばれる別のテーブル、関数のオーバーロードは、同じ名前の問題を解決することができます。
int型の追加(CONST INT&、CONST INT&B){ 返す +のBを;} ダブル追加を(CONST ダブル&CONST ダブル&B){ 返す + bを;}
関数のオーバーロード - 関数呼び出し
---コンパイル時に関数のオーバーロードは、関数の引数に応じて対応する機能を一致します
コンパイル時に静的鎖--- EDは、関数(静的鎖ED多型)コールとして決定されています
なぜC ++関数のオーバーロードを達成することができます---コンパイラ機能をコンパイルすると、関数名、およびパラメータリストを検出すると、
コンパイル時の機能のC言語コンパイラは、関数名のみを検出し、関数のパラメータが検出されません
基底関数オーバーロード:1、同じ関数名、2、パラメータリスト異なる、 追加(int型、ダブル)、3.const 修飾は、ポインタまたは参照基底関数オーバーロードとして使用することができます
関数のデフォルトのパラメータ- 関数の引数のデフォルト値
#include <入出力ストリーム> のextern " C " { の#includeは<sys / types.h>に する#include <SYS / stat.h> の#include <fcntl.h> } 使用して 名前空間STDを、 int型 open_lcd(CONST 文字 *ファイル名= " / DEV / FB0 "、INTフラグ= O_RDWR) {} int型メイン(ボイド) { int型 FD = open_lcd(" / DEV / FB0 " 、O_RDWR)。 FD = open_lcd(" は/ dev / FB0 "); FD = open_lcd()。 リターン 0 ; }
デフォルトルールのパラメータ:パラメータの列が連続して右から、デフォルトで左にしなければなりません
INTショー(INT A = 2、INT B = 1、INT C = 0)。
INTショー(INT BをINT、INT C = 1)
int型のショー(、int型B、int型のCをint型)
PS:間違って、私を修正互いに学び下さい場所があります。