5

CS の課題としてクラスに取り組んでいてfraction、次のコードを書きました。

fraction fraction::add(fraction other) {
    fraction temp;

    /* manipulate temp */

    return temp;
}

これは完全に機能し、新しいfractionオブジェクトを作成してから呼び出し元のコードに返しました。

問題は、なぜこれが機能したのかということです。私の分数は、メソッドが返されtempたときにスコープ外になり、破棄されるはずですが、エラーなしで呼び出し元のコードに戻されます。add

ローカルスコープで何かを返すと、スコープ外になった後も存在し続けるのはなぜですか?

4

2 に答える 2