const *」を「*」の「this」引数として渡すと修飾語が消えることについて 疑問点
2022-02-13 05:29:31
class Rectangle
{
public:
string what();
friend ostream& operator <<(ostream& os,const Rectangle & object);
};
ostream& operator << (ostream& os,const Rectangle& object)
{
os << object.what() <<": width = " << object.width << ", height = " << object.height << endl;
return os;
}
最近、c++でコース設計の実験をしていて、設計要件は簡単だったのですが、非常に奇妙な問題に遭遇しました Rectangle::what()' の 'this' 引数に 'const Rectangle' を渡すと修飾語が破棄されるというエラーが出てコンパイルできないのですが、どうしたらいいですか?本の例を見比べても原因がわからなかったのですが、Webで同じ悩みを抱えている方を発見しました。 クリックするとリンクが開きます .
直訳すると、このような意味です。
const オブジェクトは、const でないメンバ関数を呼び出すことはできず、const メンバのみが使用可能です。メンバ関数がオブジェクトのメンバの値を変更していなくても、コンパイラはそのメンバ関数がオブジェクトを変更したとみなしてしまいます。この問題を解決するには、const オブジェクトが使用する必要があるメンバ関数を単純に const にします。
ご覧の通り、C++ではconstは素晴らしく、少し複雑なもので、私のC++の旅はまだ長い道のりなのです。
関連
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み] xutility.h エラー C2064: 項目が引数を 2 つ取る関数として評価されない
-
[解決済み] CStringの_Tは何を意味するのか?
-
[解決済み] .cppファイルと.hファイルの違いは何ですか?
-
[解決済み] 確率の異なる乱数【重複】について
-
[解決済み] malloc() : メモリ破壊 (高速) c++
-
[解決済み] C++ コンソール Application1.exe がブレークポイントをトリガーしました。
-
[解決済み] IWebBrowser2のインスタンスを取得する方法
-
[解決済み] MapViewOfFileを使用した大容量ファイルのマッピング
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み】エラー:マクロ名は #ifdef 0 を使って識別子でなければならない
-
[解決済み] cin.ignore()は具体的に何をするのですか?
-
[解決済み] (18446744073709551615 == -1) はなぜ真なのでしょうか?
-
[解決済み] ターゲット 'Project1.exe' のレシピに失敗しました。
-
[解決済み] Eclipse で MI コマンド -target-select remote の実行に失敗しました。
-
[解決済み] insert" の呼び出しに対応するメンバ関数がない std::unordered_map
-
[解決済み] マウスボタンが押されたときにWM_LBUTTONDOWNがすぐに送信されない
-
[解決済み] C++のhtonl関数をいつ、どのように使用するか
-
ISO Cではポインタと整数の比較は禁止されています [-fpermissive] 。