C++いくつかの基本的な問題

1407 ワード

今日はC++Primerを見ながらC++について復習しました.大学1年生の時にソフトウェア設計を習い始めたのはCで、来学期はソフトウェア設計の2課で対象に向かって学校に通ってからC++に移ったので、C++の基本的な問題に対する認識が足りないことに気づきました.
ポインタと参照の違い
ポインタはオブジェクトであり、参照ではないので、ポインタを指すポインタがあり、参照されていない参照もなく、参照されるポインタもありません.ポインタはオブジェクトを指すか、空のポインタを指すか、定義されていないポインタを指します.ポインタはオブジェクトであるため、オブジェクトに適用される概念、例えば、役割ドメイン、初期化はポインタに適用されます.
空のポインタの定義方法
空のポインタはオブジェクトを指しません
int *ptr = nullptr;
int *ptr = 0;
int *ptr = NULL;

1つ目の定義はC++11に新しく追加されたもので、3つ目のNULLは定数前処理変数(マクロ)で、1つ目が好きです.もっと純粋なタイプの概念があるからです.
What exactly is nullptr? C/C++中0とNULLの違いは何ですか?deleteを使う場合、p=0を使うのか、それともp=NULLを使うのか。どうして?
初期化
初期化は割り当てではありません.初期化を行わないと、変数定義が異なる位置に現れ、結果は異なります.C++11では、各オブジェクトに初期化リストの初期化方式が追加されていますが、次の3行目はコンパイルできません.
double fromDouble = { 66.98 };
int toInt = fromDouble;
// int toIntWrong{ fromDouble };

同様にpreferはリストを初期化する方式で初期化を行う.
Why is list initialization (using curly braces) better than the alternatives?
字面値
この概念はずっとぼんやりしていて、literalの英語を理解すればいいです.