私は学んだことを練習していて、次のことを試しました。
#include <iostream>
struct S {
S() : val(0) {}
int val;
};
struct D : S {
D() : val(1) {}
int val;
};
void f(S *s) {
for (int i = 0; i < 5; i++, s++)
std::cout << s->val;
}
int main() {
D d[5];
f(d);
}
私が奇妙だと思うのは、出力が私が期待したもの01010
ではないということです。11111
したがって、他のすべてのループのクラスではなくval
、クラスからメンバーを取得しているようです。しかし、なぜ?S
D