c++処理タイプ
2641 ワード
一、タイプ別名
タイプ別名:複雑なタイプ名を分かりやすい名前に置き換えます.例1を参照してください.特に、タイプ別名が複合タイプまたは定数を指す場合、うっかりすると問題が発生することに注意してください.例2を参照してください.
二、auto
autoはc++11で導入され、autoはコンパイラに変数のタイプを自動的に判断させ、autoは1つの文で複数の変数を宣言することもできるが、1つの宣言文には1つの基本タイプしかないので、autoで複数の変数を宣言する基本タイプは一致しなければならない.autoはconstと参照変数を推定する際に変更を送信し,具体的な変更は例3を参照する.
授業後の練習問題の解析
三、decltypeタイプインジケータ(c++11)
decltypeタイプ推定インジケータ:式から変数のタイプを判断する必要があり、式の値を計算したくない場合に使用します.例を見る
autoとdecltypeの違い:(1)decltypeは最上位const(2)decltypeの結果が式形式と密接に関連していることを無視しません.例えば、カッコを付けないと大きな違いがあります.decltype((variable))の結果は永遠に参照であり、decltype(variable)の結果はvariableが参照である場合にのみ参照されます.
レッスン後の練習
タイプ別名:複雑なタイプ名を分かりやすい名前に置き換えます.例1を参照してください.特に、タイプ別名が複合タイプまたは定数を指す場合、うっかりすると問題が発生することに注意してください.例2を参照してください.
1
typedef double wanges; // double wanges
typedef wanges base, *p; // base double , p double *
wanges a; // double a;
2
typeof char *pastring; // pastring char * , pastring
const pastring cstr = 0; // const , pastring char
// cstr char ,
const char * cstr = 0; // const pastring cstr = 0
二、auto
autoはc++11で導入され、autoはコンパイラに変数のタイプを自動的に判断させ、autoは1つの文で複数の変数を宣言することもできるが、1つの宣言文には1つの基本タイプしかないので、autoで複数の変数を宣言する基本タイプは一致しなければならない.autoはconstと参照変数を推定する際に変更を送信し,具体的な変更は例3を参照する.
//1、 auto
int i =0, &r = i;
auto a = r;
//2、auto , const, const
int i = 100;
const int ci = i, &cr = ci;
auto b = ci; // b int (ci const )
auto c = cr; // c int( ,cr ci , ci const, const )
auto d = &i; //d int *
auto e = &ci; //e int const *,ci ,&ci int , const, const
//3、 const , , auto
const auto f = ci ; // f const int
//4、 auto , const
const &m = ci; // m const int &( )
授業後の練習問題の解析
const int i = 42;
auto j = i; // i int
const auto &k = i; // const int & , auto int &
auto *p = &i; // const int *, auto const int *
const auto j2 = i, &k2 = i; //j2 const int , k2 const int &, auto int
三、decltypeタイプインジケータ(c++11)
decltypeタイプ推定インジケータ:式から変数のタイプを判断する必要があり、式の値を計算したくない場合に使用します.例を見る
decltype(f()) sum = x; // sum f
// , f , sum f
autoとdecltypeの違い:(1)decltypeは最上位const(2)decltypeの結果が式形式と密接に関連していることを無視しません.例えば、カッコを付けないと大きな違いがあります.decltype((variable))の結果は永遠に参照であり、decltype(variable)の結果はvariableが参照である場合にのみ参照されます.
//(1)
const int ci = 0, &cj = ci;
decltype(ci) x = 0; // x const int
decltype(cj) y = x; // y const int &
//(2)
int i = 42, *p = &i; &r = i;
decltype(r+0) b ; //b int, int
decltype(*p) c; // :c int & , * ,*p int &, int &
レッスン後の練習
int a = 3, b = 4;
decltype(a) c = a;
decltype(a = b) d = a;
d = 1000;
cout << a << " " << b << " " << c << " " << d; // 1000 4 3 1000
// ,d int &, , , i int, i=x int &