-1
constであるものを返すことの背後にある適切な考え方を把握していないと思います。関数から返されるconstを変更する
const値を返す関数を持っている場合、返された後に値を変更できないということはありませんか?
なぜコンパイラは私のconstを非const変数にキャストすることができますか?
constポインタでのみ動作しますか?
const int foo(int index) {
return ++index;
}
int main(){
int i = foo(1); // why can I do this?
++i;
return 0;
}
'const int'はかなり簡単にコピーすることができます。これは' i'に代入すると起こります。ポインタとターゲットの両方が 'const'である' const X * const'を持たない限り、あなたが* at *を指しているのは 'const'です。詳細については、[このような例](http://stackoverflow.com/questions/1143262/what-is-the-difference-between-const-int-const-int-const-and-int-const)を参照してください。 'const int'を返すことは、コピーするのがとても安いので、どのような場合でも無意味です。 – tadman
http://stackoverflow.com/questions/6299967/what-are-the-use-cases-for-having-a-function-return-by-const-value-for-non-builtおよびhttp://を参照してください。より多くの情報のためにstackoverflow.com/questions/8716330/purpose-of-returning-by-const-value – wkl
値でconstを返すことは役に立たないですか? @ tadman – Dannz