Ermöglicht die C++ - Sprache den folgenden Code zum Drucken von z. 1 statt 16? Nach anderen Antworten würde ich ja raten, aber dieser Fall scheint speziell nicht abgedeckt worden zu sein.Kann Speicher für Referenzen innerhalb einer C++ - Klasse entfernt werden?
#include "iostream"
#include "cstdlib"
using namespace std;
struct as_array {
double &a, &b;
as_array(double& A, double& B)
: a(A), b(B) {}
double& operator[](const int i) {
switch (i) {
case 0:
return this->a;
break;
case 1:
return this->b;
break;
default:
abort();
}
}
};
int main() {
cout << sizeof(as_array) << endl;
}
* "aber dieser Fall scheint speziell nicht abgedeckt worden zu sein" * - Was genau ist in Ihrem Fall nicht abgedeckt? Nur dass die Referenzen Klassenmitglieder sind? –
Fehle ich etwas? Da 'a' und' b' unabhängige Referenzen sind, wie würde der Compiler die Struktur implementieren, außer durch die Zuweisung von Platz für zwei Zeiger? –
> was speziell an deinem Fall hast du keine Deckung? ja es war die Tatsache, dass die Referenzen Klassenmitglieder sind – user3493721