「オブジェクトにメンバ関数と互換性のない型修飾子があります」というエラーについての質問です。
コンパイラは、VisualStudio2010で、C++で、DirectXを用いてゲームを作っていたときに起こりました。
↓このサイトに解決法は乗っておりました。
http://d.hatena.ne.jp/pogin/20120113/1326480333
こちらのサイトのように、ゲッターの)と{の間にconstを書くことで、解決はしたのですが、この書き方に納得できません。それになんだか気持ち悪いです。
どうして、)と{の間にconstを付けなければならないのでしょうか?
「オブジェクトにメンバ関数と互換性のない型修飾子があります」というのは、どういう意味なのでしょうか?
それと最も答えて頂きたい質問で、皆さんは、こんな書き方しますか?
もししていないなら、const消そうと思います。
「オブジェクトにメンバ関数と互換性のない型修飾子があります」というエラーについてです
Re: 「オブジェクトにメンバ関数と互換性のない型修飾子があります」というエラーについてです
ここでargCoordinateはconstが付いてます。つまり、argCoordinateの中身を変更できないということです。(やや御幣がありますが。)
で、そこから関数を呼んだ際、その関数が中身を変更していたら困りますので、 とconstを入れてこの関数では値を変更しないことを明示しています。
constについてはここに詳しくあるので参照してください。
http://marupeke296.com/CPP_Const.html
http://marupeke296.com/CPP_Const2.html
で、そこから関数を呼んだ際、その関数が中身を変更していたら困りますので、 とconstを入れてこの関数では値を変更しないことを明示しています。
普通にしますね。特に気持ち悪いとも感じませんし。「sadora3 さんが書きました:皆さんは、こんな書き方しますか?
constについてはここに詳しくあるので参照してください。
http://marupeke296.com/CPP_Const.html
http://marupeke296.com/CPP_Const2.html
Re: 「オブジェクトにメンバ関数と互換性のない型修飾子があります」というエラーについてです
constメンバ関数というのですね。
URL先のページは大変参考になりました。
知らないことも結構ありました・・・。
回答ありがとうございました。
URL先のページは大変参考になりました。
知らないことも結構ありました・・・。
回答ありがとうございました。
Re: 「オブジェクトにメンバ関数と互換性のない型修飾子があります」というエラーについてです
もう解決をつけてしまった後で申し訳ありませんが、もう一つ質問をさせてください。
ゲッター関数は、問題がなければ全てのゲッター関数を例外なくconstメンバ関数にした方がいいと思いますか?
それとも、「オブジェクトにメンバ関数と互換性のない型修飾子があります」というエラーが出た場合に、仕方なくconstメンバ関数に変更するといった方法がいいのでしょうか?
個人的には前者だと思うのですが、どうでしょうか?
ゲッター関数は、問題がなければ全てのゲッター関数を例外なくconstメンバ関数にした方がいいと思いますか?
それとも、「オブジェクトにメンバ関数と互換性のない型修飾子があります」というエラーが出た場合に、仕方なくconstメンバ関数に変更するといった方法がいいのでしょうか?
個人的には前者だと思うのですが、どうでしょうか?
Re: 「オブジェクトにメンバ関数と互換性のない型修飾子があります」というエラーについてです
自分も前者にした方がいいと思います。ゲッター関数は通常メンバーを変更しないと考えられるので、constにして影響がでるとは思えません。sadora3 さんが書きました:もう解決をつけてしまった後で申し訳ありませんが、もう一つ質問をさせてください。
ゲッター関数は、問題がなければ全てのゲッター関数を例外なくconstメンバ関数にした方がいいと思いますか?
それとも、「オブジェクトにメンバ関数と互換性のない型修飾子があります」というエラーが出た場合に、仕方なくconstメンバ関数に変更するといった方法がいいのでしょうか?
個人的には前者だと思うのですが、どうでしょうか?
Re: 「オブジェクトにメンバ関数と互換性のない型修飾子があります」というエラーについてです
大変勉強になりました。
回答ありがとうございました。
回答ありがとうございました。