Verlängert ein Mitglied einer konstanten Referenzklasse die Lebensdauer einer temporären Klasse?

Warum geht das:

#include <string>
#include <iostream>
using namespace std;

class Sandbox
{
public:
    Sandbox(const string& n) : member(n) {}
    const string& member;
};

int main()
{
    Sandbox sandbox(string("four"));
    cout << "The answer is: " << sandbox.member << endl;
    return 0;
}

Ausgabe von:

Die Antwort ist

Anstatt von

Die Antwort ist: vier

Antworten auf die Frage(10)

Ihre Antwort auf die Frage