【发布时间】:2015-06-16 05:49:54
【问题描述】:
C++ 语言是否允许打印以下代码? 1而不是16?根据其他答案,我猜是的,但这种情况似乎没有具体涵盖。
#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;
}
【问题讨论】:
-
“但是这个案子似乎没有被特别报道” - 你觉得你的案子有什么特别的地方没有被报道?只是引用是类成员?
-
我错过了什么吗?由于
a和b是独立的引用,除了为两个指针分配空间之外,编译器将如何实现该结构? -
> 你觉得你的案子有什么特别的地方没有被涵盖?是的,事实上引用是类成员