#include <iostream> struct Foo { Foo() : x(2) {} int x; }; struct Bar : public Foo { Bar() : x(3) {} int x; }; int main() { Bar bar[100]; Foo* p = bar; int total = 0; for( int i = 0; i < 10; ++i ) total += p++->x; std::cout << total << std::endl; return 0; } Интересно, у кого-нибудь будет total != 25 ? P.S. Фокус тут в p++.