久々にC++でクラスの勉強をしまして、本を読み返していましたら、定数クラスなるものが書いてありました。
クラス Classのインスタンスを生成する際に、
const Class class1;
と定義するようです。これは、Classに定義されている(pricate,publicどちらの)メンバ変数も
いかなる方法でも変更できなくなる
ということでしょうか。
すなわち、実際クラス内でそのようには書けませんが
Classで定義されているメンバ変数の全てに、constを後付けしたと思えば良いのでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
クラスの宣言自体に工夫が必要なようです。
Classで定義されているメンバ変数の全てに、constを後付けしたと思えば良いのでしょうか。
変数ではなく、関数に const キーワードが必要ということですね。
投稿2019/09/23 05:27
編集2019/09/23 05:31総合スコア28669
0
ベストアンサー
int型で言えば,
int i1;
と
const int i2;
の違いと同じ話.
構造体で言えば,
struct S{ int A; int B; };
に対する
S S1;
と
const S S2;
の違いと一緒.
追記:
いかなる方法でも変更できなくなる
mutableなんてのがありますので,「いかなる方法でも変更できない」というわけではないですね.
投稿2019/09/23 04:45
編集2019/09/23 07:31総合スコア11990
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/23 05:09 編集
2019/09/23 05:14
2019/09/23 05:17
2019/09/23 05:29
2019/09/23 05:43
2019/09/23 06:06
2019/09/23 07:55
2019/09/23 08:07 編集
2019/09/23 08:09
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。