C++ dili aşağıdaki kodun yazdırılmasına izin veriyor mu örn. 16 yerine 1 mi? Diğer cevaplara göre evet tahmin ediyorum ama bu dava özellikle ele alınmamış gibi görünüyor.Bir C++ sınıfındaki referanslar için depolama alanı optimize edilebilir mi?
Bir referans muhafazası da
derleyici kadar ne karar verecek olan belirtilmemiş gerektirir olsa da olmasa da:
#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;
}
* "Ancak bu vaka özellikle ele alınmamış gibi görünüyor" * - özellikle sizin durumunuzla ilgili ne hissettiğinizi hissetmiyor musunuz? Sadece referanslar sınıf üyesi mi? –
Bir şey mi eksik? “A” ve “b” bağımsız referanslar olduğundan, derleyici iki gösterici için alan ayırmak yerine, bu yapıyı nasıl uygular? –
> Özellikle sizin durumunuzla ilgili olarak kapsanmamış hissediyor musunuz? Evet, referansların sınıf üyeleri olduğu gerçeğiydi – user3493721