• Source
    1. #include <iostream>
    2. using namespace std;
    3.  
    4. int main()
    5. {
    6. struct AnPOD
    7. {
    8. int member;
    9. void print() { cout << member << endl; }
    10. };
    11.  
    12. struct NonPOD1
    13. {
    14. int member;
    15. NonPOD1() { }
    16. void print() { cout << member << endl; }
    17. virtual void Hoge() { }
    18. };
    19.  
    20. struct NonPOD2
    21. {
    22. int member;
    23. NonPOD2() : member() { }
    24. void print() { cout << member << endl; }
    25. virtual void Hoge() { }
    26. };
    27.  
    28. AnPOD a; a.print(); // a.member は 不定
    29. AnPOD b = AnPOD(); b.print(); // b.member は ゼロ
    30. AnPOD *c = new AnPOD; c->print(); // c->member は不定
    31. AnPOD *d = new AnPOD(); d->print(); // d->member は ゼロ
    32. AnPOD *e = new AnPOD[5]; e[0].print(); // e[0].member は不定
    33. AnPOD *f = new AnPOD[5](); f[0].print(); // f[0].member はゼロ
    34. int g; cout << g << endl; // g は不定
    35. int h = int(); cout << h << endl; // hはゼロ
    36. NonPOD1 i; i.print(); // i.val は 不定
    37. NonPOD2 j; j.print(); // j.val は ゼロ
    38. return 0;
    39. }
    40.