#はじめに
学習の仕方を変えようと思います。いままで、コメント欄で新しい機能などを皆様から教えていただいたときに、次の日にすべてを理解しようとしていました。しかし、この方法だと私の許容範囲を超えてしまい正しく理解できないと感じました。そこで、1日1~2項目を正しく理解できるように、その項目を深く調べようと思います。
##Stock List
ここでは、まだ少し不安な要素があるものをリストにする。
1日目から今日までの投稿を振り返ってみて見ようと思う。
オブジェクト指向関係は、後回しにするかな。静的メンバとか。
###未解決
・int const * const * const ** const * p
←今日解決する
・静的メンバ 参照
・std::string
・i++
と++i
の違い
・nullptr
・std::vector
・std::array
・enum class
・メモリ メモリの話
・スマートポインタの使い方 std::unique_ptr
や std::shared_ptr
・std::quick_exit
あとで読む
・初期化子
・みえる・みえない
・this
###解決
##ロベールのC++
###07-11 クラスの実体の動的確保
オブジェクトをnewするときにコンストラクタが、deleteするときにデストラクタが呼ばれる。
引数つきのコンストラクタも呼べる。
一度読んでみたがイマイチ理解ができなかったので、明日もう一度やってみる。
クラスの動的確保は重要そう。
##int const * const * const ** const * p
###constポインタの基本
int * p; //アドレスも中身も書き換え可能
const int * p; //アドレスは書き換え不可能 中身は書き換え可能
int * const p; //アドレスは書き換え可能 中身は書き換え不可能
const int * const p; // アドレスも中身も書き換え不可能
↑参照
英語を使った解読方法をコメント欄にて教えていただいたので紹介する。
int * p; //アドレスも中身も書き換え可能
| | |
| | `p` is
| | |
| pointer to
|
int
これより、p is pointer to int
という文がでる。
const int * p; //アドレスは書き換え不可能 中身は書き換え可能
この場合は、p is pointer to read only int
int * const p; //アドレスは書き換え可能 中身は書き換え不可能
p is read only pointer to int
const int * const p; // アドレスも中身も書き換え不可能
p is read only pointer to read only int
英文の作り方は多分あっていると思います。英語が苦手なので、正しく意味があっているか不安です。
つまり、
int const * const * const * * const * p;
p is pointer to read-only pointer to pointer to read-only pointer to read-only pointer to read-only int
英文が読めないのですけど、
中身の書き変えOKで、アドレスも書き換え可能とコメント欄で教えてもらいました。
いい画像を頂いたのでここに掲載してもらいます。
この図を見てると、規則性がいくつか思いつきそう。
一番右にポインタがついていると、pは書き換え可能ということになる。
他にも見つけられそう。
#終わりに
英語嫌い
toいっぱいあってややこしいな。