メソッド宣言の後の const 修飾子の意味 - ページ 4 1234567 新しいコメント 削除済み 2016.02.01 16:16 #31 Dmitry Fedoseev: 自分のものではなく、同じタイプの全く外国のものです。自分のものでないものは?型が同じであること?定数メソッドは 他人のクラスを変更できないとでも言うのでしょうか?また、返信の際は、もう少し具体的にお願いします。何を言いたいのかが分かりませんでした。 Dmitry Fedoseev 2016.02.01 16:19 #32 Alexey Kozitsyn:自分のものでないものは?型が同じであること?定数メソッドは 他人のクラスを変更できないとでも言うのでしょうか?また、返信の際は、もう少し具体的にお願いします。意味が分かりませんでした。 わけのわからないことを書いているのはあなたです。 どんなタイプでも、それ自身と同じタイプの他人のクラスを変更することができます。 Dmitry Fedoseev 2016.02.01 16:22 #33 端的に言えば定数メソッドでは、定数メソッドがあるクラスと同じクラスで宣言された(またはその親で宣言された)変数の値を変更することは不可能です。そうなんですか? 削除済み 2016.02.01 16:24 #34 Dmitry Fedoseev: 書いてあることが理解できていないのはあなた自身 どのようなタイプでも、自身と同じタイプの他人のクラスを変更することができます。やっぱり書く内容には気をつけた方がいいのかもしれませんね。メソッドはどのようにクラスを変更することができますか?クラスオブジェクトとか?そして、その疑問は文中にあった。定数メソッドは、そのクラスのメンバを変更することはできません。アレクセイは変わることがあるという例を出したので、この発言は正しくないと思います、Vasiliyのコメントを聞きたかったのです。 Dmitry Fedoseev 2016.02.01 16:28 #35 Alexey Kozitsyn:やっぱり書く内容には気をつけた方がいいのかもしれませんね。メソッドはどのようにクラスを変更することができますか?クラスオブジェクトとか?そして、その疑問は文中にあった。アレクセイは変わる可能性があるという例を出したので、その発言は間違っていると思います、Vasilyのコメントを聞きたかったです。もっと考えて読んだらどうだ?-"宣言された変数の 値を変更する"アレクセイの主張について、どのように話すことができるのか。ただ主張するだけでなく、実際に確認し、例を挙げ、エディタに放り込んで、コンパイルするときとしないときを見ることができる。 削除済み 2016.02.01 16:29 #36 Dmitry Fedoseev:端的に言えば定数メソッドでは、定数メソッドがあるクラスと同じクラスで宣言された(またはその親で宣言された)変数の値を変更することは不可能です。そうなんですか? いや、クラスの各オブジェクトには、そのクラスで宣言された変数のセットがあることは知っていますね?また、定数メソッドは、呼び出された先のオブジェクト(つまりセット)だけを変更することはできません。 Dmitry Fedoseev 2016.02.01 16:29 #37 Alexey Kozitsyn:やっぱり書く内容には気をつけた方がいいのかもしれませんね。メソッドはどのようにクラスを変更することができますか?クラスオブジェクトとか?..こんな感じ。 void bar(X& obj) const { obj._x = 42; // OK! obj передается по ссылке и не имеет модификатора const } Dmitry Fedoseev 2016.02.01 16:31 #38 Alexey Kozitsyn: いや、あるクラスのオブジェクトは、そのクラスで宣言された独自の変数を持っていることは知っていますよね?また、定数メソッドは、呼び出された先のオブジェクト(つまりセット)だけを変更することはできません。 通話と何の関係があるのですか?重要なのは、メソッドと変数の位置関係です。メソッドと変数が同じクラス内にある場合は、変更することはできません。クラスがパラメータとして参照渡しされる場合、可能です。 Dmitry Fedoseev 2016.02.01 16:43 #39 struct X { int _x, _y; void foo() const { _x = 42; // ERROR! метод объявлен, как const, не можем менять члены _y = 42; // ERROR! } void bar(Z& obj) const { obj._x = 42; // OK! obj передается по ссылке и не имеет модификатора const _x = 42; // ERROR! } void bar(Z const& obj) { obj._x = 42; // ERROR! obj передается по ссылке, как const obj._y = 42; // ERROR! obj передается по ссылке, как const _x = 42; // OK! метод объявлен без const на сонце } }; その方が理にかなっている。 削除済み 2016.02.01 17:55 #40 Dmitry Fedoseev: 通話は何の関係があるのですか?重要なのは、メソッドと変数の位置関係です。メソッドと変数が同じクラス内にある場合は、変更することはできません。クラスがパラメータとして参照渡しされる場合、可能です。 ここでの課題は、クラスAのオブジェクト1がクラスAの定数メソッドを 呼び出した場合、そのメソッドはそのオブジェクト1(つまり呼び出したオブジェクト1)を変更できないことである。しかし、object1が同じ定数メソッドに参照渡しされ、クラスAのobject2から呼び出された場合、object1を変更することができる。逆にObject2ができない。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
自分のものではなく、同じタイプの全く外国のものです。
自分のものでないものは?型が同じであること?
定数メソッドは 他人のクラスを変更できないとでも言うのでしょうか?
また、返信の際は、もう少し具体的にお願いします。何を言いたいのかが分かりませんでした。
自分のものでないものは?型が同じであること?
定数メソッドは 他人のクラスを変更できないとでも言うのでしょうか?
また、返信の際は、もう少し具体的にお願いします。意味が分かりませんでした。
端的に言えば定数メソッドでは、定数メソッドがあるクラスと同じクラスで宣言された(またはその親で宣言された)変数の値を変更することは不可能です。そうなんですか?
書いてあることが理解できていないのはあなた自身 どのようなタイプでも、自身と同じタイプの他人のクラスを変更することができます。
やっぱり書く内容には気をつけた方がいいのかもしれませんね。メソッドはどのようにクラスを変更することができますか?クラスオブジェクトとか?
そして、その疑問は文中にあった。
定数メソッドは、そのクラスのメンバを変更することはできません。
アレクセイは変わることがあるという例を出したので、この発言は正しくないと思います、Vasiliyのコメントを聞きたかったのです。
やっぱり書く内容には気をつけた方がいいのかもしれませんね。メソッドはどのようにクラスを変更することができますか?クラスオブジェクトとか?
そして、その疑問は文中にあった。
アレクセイは変わる可能性があるという例を出したので、その発言は間違っていると思います、Vasilyのコメントを聞きたかったです。
もっと考えて読んだらどうだ?-"宣言された変数の 値を変更する"
アレクセイの主張について、どのように話すことができるのか。ただ主張するだけでなく、実際に確認し、例を挙げ、エディタに放り込んで、コンパイルするときとしないときを見ることができる。
端的に言えば定数メソッドでは、定数メソッドがあるクラスと同じクラスで宣言された(またはその親で宣言された)変数の値を変更することは不可能です。そうなんですか?
やっぱり書く内容には気をつけた方がいいのかもしれませんね。メソッドはどのようにクラスを変更することができますか?クラスオブジェクトとか?
..
こんな感じ。
いや、あるクラスのオブジェクトは、そのクラスで宣言された独自の変数を持っていることは知っていますよね?また、定数メソッドは、呼び出された先のオブジェクト(つまりセット)だけを変更することはできません。
通話は何の関係があるのですか?重要なのは、メソッドと変数の位置関係です。メソッドと変数が同じクラス内にある場合は、変更することはできません。クラスがパラメータとして参照渡しされる場合、可能です。