Warum sind Arrays von Referenzen illegal?

Der folgende Code wird nicht kompiliert.

int a = 1, b = 2, c = 3;
int& arr[] = {a,b,c,8};

Was sagt der C ++ - Standard dazu?

Ich weiß, ich könnte eine Klasse deklarieren, die einen Verweis enthält, und dann ein Array dieser Klasse erstellen, wie unten gezeigt. Aber ich möchte wirklich wissen, warum der obige Code nicht kompiliert wird.

struct cintref
{
    cintref(const int & ref) : ref(ref) {}
    operator const int &() { return ref; }
private:
    const int & ref;
    void operator=(const cintref &);
};

int main() 
{
  int a=1,b=2,c=3;
  //typedef const int &  cintref;
  cintref arr[] = {a,b,c,8};
}

Es ist möglich zu verwendenstruct cintref anstattconst int & um eine Reihe von Referenzen zu simulieren.

Antworten auf die Frage(14)

Ihre Antwort auf die Frage