1
bval
을 인쇄하고 있지만 출력은 dval
의 값을 표시합니다. 실제 논리는 컴파일러에서 무엇을 사용합니까? 내 예상 출력은 00000 00000
이었지만 출력은 00000 01010
입니다.포인터를 사용하여 작업하는 동안 Inheitance가 작동하지 않습니다.
#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;
}
정의되지 않은 동작. 배열을 다형 적으로 처리 할 수 없습니다. 중복 검색 중 ... –
or ... http://stackoverflow.com/questions/1411844/polymorphism-pointers-to-arrays –