C ++の牛が質問day24をはねのけます

違いは、 "のXh" が含まれると>> <<のXhが含まれる:1

あなたがディレクトリを見つけることができない場合は、指定された検索システム、検索ユーザーディレクトリ:二重引用符
角括弧:検索のみ指定されたディレクトリシステム
2:多型の概要
(コンパイル時に)静的:関数のオーバーロード、演算子のオーバーロードは、実現をテンプレート
(ランタイム)ダイナミック:仮想関数を実装
3:ローカル静的変数の説明
関数を用いたX次回の前の値を使用して静的初期化子、ローカル変数xを関数の終了時に解放されないように、
また、ローカル変数は、グローバル変数を上書きします
4自動和レジスタ
int型のA定義されたローカル変数も呼ばれている自動変数は、メモリ空間を節約し、関数、変数のパフォーマンスを最適化するためにのみ、この機能では、自動int型AAの範囲をある、コンパイラは通常、使い捨てFILO(スタックに割り当てられますスタック上の生命のうち、終わり)。そのような異なる機能を実行する際、スタック、メモリのより効率的な使用上のスタック操作の行われます。レジスタと変数を変更するには、変数のアクセス速度が最速を達成するように、変数は、レジスタ変数として使用されることを意味します。プログラムロジックは、これらの変数が宣言を登録することができ、頻繁に操作するには、いくつかの変数があることを大きなループを持っています。
決定するために、コンパイル時に5仮想関数テーブル、クラスオブジェクトは多型性を達成するための鍵である動作段階で決定されたvptr仮想関数ポインタ。クラスが初期化されていない場合や、仮想関数のいずれかの定義が無効です。
6:dynamic_castをの説明
dynamic_castを<>は、C ++クラスの継承に変換する多型、に分けられる:
(キャストアップ)1サブクラスの基本クラスへ上方遷移
サブクラスまで(キャストダウン)2.遷移ベースクラス
アップキャストしない請求私達はちょうど成功の常に必ずその変換をアップdynamic_castを、ポインタまたは参照から基底クラスをサブクラス化するために、ポインタまたは参照を使用して、任意の特別なメソッドを使用する必要があります。
 
そして時にダウンコンバート特別な注意払うために:安全か派生クラス参照にdynamic_cast演算子、基本型のポインタまたは参照ポインタを。ベース・クラス・オブジェクト・ポインタ(または参照)を派生クラスへのポインタをキャストのdynamic_cast、基本クラスのポインタベースのdynamic_castは真に従って行うためにクラスポインタポイントを継承しています。オブジェクトが参照またはポインタのターゲット・タイプにバインドされていない場合、これがまた、変換のdynamic_castおよびその他のさまざまな場所で、クラスオブジェクトを含むのdynamic_castランタイムチェック、その後はdynamic_castは失敗します。ポインタ型が失敗した場合、それは、bad_castエラーをスロー失敗参照型である場合は、その後のdynamic_cast、0の値を返します。
注意:親サブクラスにキャストのdynamic_castは、親仮想関数を持っている必要があります。RTTIのdynamic_castランタイム情報をチェックする必要があるため。実行時にのみ仮想関数とRTTIクラスを確認します。
7:エスケープ文字を示してい
'\ 0' エスケープ文字ヌル文字を、 '\ xhh' は、 '\ X41' として、文字 'A'、ASCIIコード65を表す(hは0-Fである)文字の16進エスケープ; '\ DDD' ターンオクタル例えば、 '\ 063' などの文字(D 0-7)、エスケープ文字を表す '3'、ASCIIコード51を、 '\' 文字007エスケープ; '\ B' 文字バックスペースエスケープ; '\ C' 非トランスジェニック正義の文字。上記は、エスケープ文字で、特殊な方法で処理する必要のあるコンパイラに指示します。---------------------- C / C ++は、16進数は0xで始まる必要があり提供します。例えば、0x1のは、対応する小数1に等しい16進数を表します。さらにとおり等は0xFF、0xFFを、0X102A、Xは大文字と小文字を区別しないが(0Xは0の数ではなく、文字のOである)です。C言語でない場合、O文字でオクタル開始、すなわちO 0と等価です。両方の16進数と8進数を表す数値ができます。
8:ユーザ識別子の定義

キー単語列に加えて、識別子として定義することができます。重要ではない定義

字,所以可以把define定义成标识符,但if是关键字,所以不能定义成标识符。

9:STL灵魂大拷问
A:“很多程序员希望STL实现是完全线程安全的“。所以不安全。
B:vector的存在可以使开发者不必关心内存的申请和释放。但是,vector的一个缺点就是它的内存分配是按照2的倍数分配内存的。
C:错误。要知道 std::sort 不是稳定的排序算法,它不保证“相等”元素的相对位置,使用 std::stable_sort 来保证这一点
D:STL的容器可以分为以下几个大类: 
一:序列容器, 有vector, list, deque, string.
二 : 关联容器,     有set, multiset, map, mulmap, hash_set, hash_map, hash_multiset, hash_multimap
三: 其他的杂项: stack, queue, valarray, bitset
E:正确。堆栈是一个线性表,插入删除操作都在一端进行,deque是先进先出的,操作原理和stack是一样的
10.内存缺页指的是我们访问某页时却发现不在,需要从硬盘中调入的情况,而淘汰则指的是页面满了,而我们又需要调入一个新的页面的情况。
11.类的静态成员不属于类的对象,而是整个类共有的,并且类的大小是不计入静态变量的,毕竟static变量根本就不存在于类对象的体内。所以也就无从谈起占用空间了。
12.fork()给子进程返回一个零值,而给父进程返回一个非零值;
13.递归求全排列
void run( int n) {
   int i;
   if (N - 1 == n) {
     dump();
     count ++;
     return ;
   }
   for (i = __n_; i < N; i++) {
     swap(__n_, i); //从n到N-1依次和n交换
     run(n + 1);   //递归求解从n+1到N的全排列
     swap(__n_, i);   //n和i又换回来 又是另一种排列
   }
}
14.非常量引用必须是左值


左值和右值都是针对表达式而言的,左值是指表达式结束后依然存在的持久对象,右值是指表达式结束时就不再存在的临时对象。
在标准C++语言中,临时量(术语为右值,因其出现在赋值表达式的右边)可以被传给函数,但只能被接受为const &类型。

函数形式参数是临时量,是右值。所以只能被接受为const &类型 。
15.C语言中数组越界不会报错卧槽。这语言也太坑了吧
16.
struct mybitfields
{
     unsigned  short a : 4;
     unsigned  short b : 5;
     unsigned  short c : 7;
} test
形如这样的语句就是指分别给a,b,c赋予4,5,7位的空间。
这一点一定不要记错了

おすすめ

転載: www.cnblogs.com/Tonarinototoro/p/11590082.html