1
尽管我们正在打印bval
,但输出结果也显示为值dval
。编译器使用什么实际的逻辑?我的预期产出是00000 00000
,但我获得输出为00000 01010
。使用指针工作时Inallitance不起作用
#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;
}
未定义的行为。你不能多态地处理数组。寻找重复... – 2013-04-24 10:44:48
或... http://stackoverflow.com/questions/1411844/polymorphism-pointers-to-arrays – 2013-04-24 10:47:07