は私が最初に私のコードをポストすることを許可する:C++の一時変数と定数の違いは何ですか?
void Fun(short &s){}
void FunCon(const short &s){}
int main()
{
int iTest = 20;//note: iTest is int but parameter of Fun is "short &"
Fun(iTest);//error, I know there is a temp variable(typecast)
FunCon(iTest);//ok
return 0;
}
私はFun(iTest);
が新しい一時変数(型キャスト)を生成しますが、temp変数は、定数あるかしら知っていますか?
ませんの場合:MOCreator()
によって返さ
class MyObject{
public :
void F(){}
};
MyObject MOCreator(){
return MyObject();
}
int main()
{
MOCreator().F();//OK
return 0;
}
場合はtemp変数:私はこのような別のコードを持っている:私はshort &
はい場合に一時変数を渡すことはできませんなぜは定数です。の一時変数は、非constメンバー関数?
私の質問は以下のとおりです。
1)一時変数およびC++での定数の違いは何ですか?
2)で考えているのは、C++で考えている(507ページ)です。文章は正しいですか?そして、なぜ?:
一時オブジェクトが自動的にのconst
ある私は、誰かによって、簡単な質問を求め、そして私は質問を解決するための私の方法について多くの質問が発生しました。私は彼らが非常によくある質問かもしれないことを知っています、そして、私はネットで長い時間を探しています。私はまた、多くの異なった答えを得ました。しかし、私は今それについてもっと混乱しています。
ありがとうございます。
"一時的なオブジェクトは自動的にconstです"文章は正しいですか? – Joe
@Joe私はそれのコンテキストを知らない、私はそれがこの単一の文のために間違っていると言うでしょう。 – songyuanyao
@Joe [C++ constの一時オブジェクトは本当ですか?](http://stackoverflow.com/q/4701558/3309790)を参照してください。 – songyuanyao