記事のディレクトリ
第四章式
値について
表現 | 「」=「」左に配置することができます | 結果 | オブジェクトは、(左/右)式を行います |
---|---|---|---|
左辺値の式 | V | オブジェクト、関数 | アドレス |
式の右側の値 | バツ | 値 |
例
&i;
私 | 私のアドレスで、私は左辺値であります |
---|---|
&私 | &Iは、ポインタ、ポインタ値の値であると私はintなど、右、* p =&iは |
左辺値 | 右辺値 | |
---|---|---|
decltype§ | 参照型、eg.pは* intで、int型&リターン |
評価の順序
F()+ G()...
いくつかの機能が同じオブジェクトに影響を与える場合は、エラー
[!] F()関数はオブジェクトの値、表現gを()を変更するのであればは、このオブジェクトを使用しないでください。しかし、絶対ではありません。例外:* ++イテレータ、最初++逆参照が再び、例外はありません。
モデューロ
オペランド | m個の%Nシンボル |
---|---|
整数 | そしてmは同じです |
_参照は、パフォーマンスを向上させます
要素のコピーは避けてください
代入演算子
低順位
while((i=get_value())!=2){...}
= + _性能を向上しました。
複雑な計算に一度だけ
++パフォーマンスを向上させるI_
私比べ++、私は店に必要
I ++ _アプリケーション
便利なポインタトラバーサル
while(){
*p++;//先++,但是解引用的是p原值,不是p++后的值
...
}
注 - 代入式
それの両側に「=」の値を変化させることができません
while(){
*it=toupper(*it++);//error
}
そして、 "" " - >"
string s="dwa";
string *p=&S;
(*p).size();
p->size();
?:
string s=(..)?"dwa":"wda";
ビットコンピューティング
オペランド | |
---|---|
整数、符号なしの数が推奨します | ビットとして |
標準ライブラリビットセット |
演算子 |
---|
<< >>シフト |
〜否定 |
そして、&、|または^ XOR |
のサイズ
バイトの数またはタイプの発現
戻り値:size_tの、定数式
二つの方法クラスメンバー
sizeof(对象.成员);
sizeof(类::成员);
配列サイズを得ることができます
int a[]={1,2,3};
constexpr size_t size =sizeof(arr)/sizeof(*a);//计算数组大小
int arr2[size];//可以用来定义数组
「」演算子
for(;;,){}
キャスト
const_castを機能:根本のconstを削除
const char *p;
char *p2=const_cast<char*>(p);//p变成了char*,
第五章声明
throw式
機能:異常検出
if(..){
throw runtime_error("string");c
}
tryブロック
機能:例外処理
try{
}catch(runtime_error err){
cout<<err.what()<<endl;//
}catch(xxx){
}..