struct A { | |
int i = 47; | |
int f() { return i; } | |
virtual ~A() = default; | |
}; | |
struct B: public A { | |
int j = 42; | |
}; | |
namespace ns { | |
struct A { | |
int i = 147; | |
::A getA(); | |
A(); | |
}; | |
A::A() = default; | |
::A A::getA() { | |
::A a; | |
a.i = i - 1; | |
return a; | |
} | |
} // namespace ns | |
int foo(A *a) { | |
return a->f(); | |
} | |
int main() { | |
return foo(new B); | |
} |