|
|
От: | _nn_ | |
| Дата: | 30.05.10 11:48 | ||
| Оценка: |
35 (2)
-1
|
||
struct base
{
int i;
char c;
};
struct derived : base
{
double d;
};
#include <stdio.h>
int main()
{
base b = base();
printf("b.i - %d\n", b.i);
printf("b.c - %d\n", (int)b.c);
derived d = derived();
printf("d.i - %d\n", d.i);
printf("d.c - %d\n", (int)d.c);
printf("d.d - %f\n", d.d);
}b.i — 0
b.c — 0
d.i — 0
d.c — 0
d.d — 0.00000
b.i — 0
b.c — 0
d.i — -858993460
d.c — -52
d.d — -925596....
struct derived /* : base*/
{
base b;
double d;
};derived* pd = new derived();
derived& d = *pd;
...derived d;
new (&d) derived();struct nontrivial
{
nontrivial() : member(4) {}
~nontrivial() {}
int member;
};
struct base
{
int i;
char c;
nontrivial n;
};
struct derived : base
{
double d;
};
#include <stdio.h>
#include <new>
int main()
{
base b = base();
printf("b.i - %d\n", b.i);
printf("b.c - %d\n", (int)b.c);
printf("b.n.member - %d\n", b.n.member);
derived d = derived();
new (&d) derived(); // Workaround ??
printf("d.i - %d\n", d.i);
printf("d.c - %d\n", (int)d.c);
printf("d.d - %f\n", d.d);
}b.i — -858993460
b.c — -52
b.n.member — 4
d.i — -858993460
d.c — -52
d.d — -925596....