c++関数の戻り値タイプ---参照&非参照
590 ワード
一、非参照タイプを返す戻りタイプが参照でない場合、戻り値は関数呼び出し時に一時オブジェクト に与えられる.関数が非参照タイプを返す場合、その戻り値はローカルオブジェクトであっても解式の結果であってもよい である.
二、参照タイプを返すが参照タイプを返す場合、戻り値はコピーされず、オブジェクト自体 を返す.は、ローカルオブジェクトへの参照を返すことができず、ローカルオブジェクトへのポインタ を返すことができない.が参照を返す場合、パラメータには参照方式またはポインタ方式で存在することが要求され、返される必要があるパラメータ が含まれる.
リロード+の場合、返されるオブジェクトはパラメータaなので参照を返すことができ、リロード-の場合、関数内にローカルオブジェクトが作成され、戻り値はローカルオブジェクトの参照を返すことができません.
二、参照タイプを返す
const integer& operator+(const operator& a)
{
return a;
}
const integer operator1(const operator& a)
{
return integer(-a.i);
}
リロード+の場合、返されるオブジェクトはパラメータaなので参照を返すことができ、リロード-の場合、関数内にローカルオブジェクトが作成され、戻り値はローカルオブジェクトの参照を返すことができません.