Wie initialisiere ich die Referenz-Member-Variable einer Klasse?

Betrachten Sie den folgenden Code C ++:

    #include<iostream>

using namespace std;

class Test {
    int &t;
public:
    Test (int &x) { t = x; }
    int getT() { return t; }
};

int main()
{
    int x = 20;
    Test t1(x);
    cout << t1.getT() << " ";
    x = 30;
    cout << t1.getT() << endl;
    return 0;
}

Es wird der folgende Fehler angezeigt, wenn der gcc-Compiler verwendet wird

    est.cpp: In constructor ‘Test::Test(int&)’:
    est.cpp:8:5: error: uninitialized reference member ‘Test::t’ [-fpermissive]

Warum ruft der Compiler den Konstruktor nicht direkt auf?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage