<分区>
虽然我们正在打印 bval
,但输出也显示了 dval
的值。编译器使用的实际逻辑是什么?我的预期输出是 00000 00000
,但我得到的输出是 00000 01010
。
#include <iostream>
using namespace std;
class base {
public:
int bval;
base() { bval = 0; }
};
class deri : public base {
public:
int dval;
deri() { dval = 1; }
};
void SomeFunc(base *arr , int size) {
for(int i = 0; i < size; i++, arr++)
cout << arr-> bval;
cout<<endl;
}
int main() {
base BaseArr[5];
SomeFunc(BaseArr, 5);
deri DeriArr[5];
SomeFunc(DeriArr, 5);
return 0;
}