私はconst参照線量リレーで何かを保存して戻ってくるとこのような状況がありますが、この関数は何百回も呼び出されることがあります。C++のconst参照で返されます。ここでは、受信側関数のコピーで値がそれに相当しますか?
は私が持っている:で
int x = 0;
class Foo {
...
....
Mo mo;
void Foo::setInt(float scaleX)
{
x = mo.doSomthing().toInt();
//x is class member which other functions are using it
}
...
...
..
}
:D oSomthing().toInt()
を呼び出す
Val Mo::doSomthing()
{
Val v(444444);
return v;
}
:const参照として番号を取得することを
struct Val
{
public:
Val(int& v)
{
iVal = v;
}
const int& toInt()
{
return iVal;
}
private:
int iVal;
};
機能をintを返し
一般的なコンテナをこの場合には何らかの理由がありますいくつかのビットを保存するためにconst参照を使用するために?
参照によって基本型を返すことは、不要なオーバーヘッドのようなものです。実際には、2つのコピーは、単一のコピーとconst参照より安いかもしれません。しかし、確実に知るための唯一の方法は、きついループをプロファイルすることです。 – StoryTeller
早すぎる最適化についてお読みください。一般的には** measure **です。 –
最初の質問:このループは、プログラム操作の典型的な時間に数十億回実行されますか?答えが「複数」でない場合は、ここで時間を無駄にしています。これらの種類の操作は、現代のプロセッサでは愚かです。ベンチマークの場合、意味のあるデータを得るために数百万回以上のサイクルを実行する必要がある場合は、驚くことはありません。 – tadman