[解決済み] メンバ関数の末尾にあるconstの意味を教えてください。重複
2023-06-05 19:10:50
質問
は具体的にどのようなものなのでしょうか?
const
というキーワードがメンバ関数の最後(引数リストの後)に書かれているのは、一体どういう意味なのでしょうか?
どのように解決するのですか?
それは
*this
は
const
の内部で、つまりオブジェクトを変更することなく、そのメンバ関数を実行します。
キーワード
this
はprvalue式で、その値は関数が呼び出されるオブジェクトのアドレスです。の型はthis
の型は、クラスのメンバ関数でX
はX*
. メンバ関数が宣言されている場合const
と宣言されている場合、その型はthis
はconst X*
. [9.3.2項§1] となります。において
const
メンバ関数では、関数が呼び出されたオブジェクトはconst
アクセスパスを通してアクセスされます。const
メンバ関数は,オブジェクト及びその非静的データメンバを変更してはならない。[セクション 9.3.2 §2]。
これは
const
のメンバー関数は
const
のインスタンスに対して呼び出すことができます。非
const
のメンバー関数を呼び出すことはできません。
[1]
a
const
オブジェクトを変更しようとする可能性があるためです。
[1]
注意:テンポラリーは
const
オブジェクトでない限り
const
型でなければなりません。
関連
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] static_cast, dynamic_cast, const_cast, reinterpret_cast はいつ使うべきですか?
-
[解決済み] ルール・オブ・スリーとは?
-
[解決済み] コピーアンドスワップ慣用句とは?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】「Expected '(' for function-style cast or type construction」エラーの意味とは?
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。