30 lines
596 B
C
30 lines
596 B
C
// { dg-do run }
|
|
// prms-id: 789
|
|
|
|
extern "C" int printf (const char *, ...);
|
|
struct foo
|
|
{
|
|
static int count;
|
|
virtual void print (int i, int j) { printf ("foo[%d][%d] = %d\n", i, j, x); }
|
|
int x;
|
|
foo () { x = count++; }
|
|
};
|
|
int foo::count;
|
|
struct bar : virtual public foo
|
|
{
|
|
virtual void print (int i, int j) { printf ("bar[%d][%d] = %d\n", i, j, x); }
|
|
};
|
|
|
|
// bar array[3][3];
|
|
foo array[3][3];
|
|
|
|
int main ()
|
|
{
|
|
for (int i = 0; i < 3; i++)
|
|
for (int j = 0; j < 3; j++) {
|
|
// printf("&a[%d][%d] = %x\n", i, j, (void *)&array[i][j]);
|
|
array[i][j].print (i, j);
|
|
}
|
|
return 0;
|
|
}
|