5 V(): virtual_value(-123) {}
7 virtual int access_vv() { return virtual_value
; }
10 struct A
: virtual public V
{
13 virtual int access() { return value
; }
15 struct B
: virtual public V
{
18 virtual int access() { return value
; }
20 struct C
: public A
, public B
{
21 C():better_value(789) {}
23 virtual int access() { return better_value
; }
25 struct D
: public A
, public B
{
26 D():better_virtual_value(-345) {}
27 int better_virtual_value
;
28 virtual int access_vv() { return better_virtual_value
; }
38 return v
->access_vv();
44 assert(v_use(&c
) == -123);
46 assert(v_use(&d
) == -345);