C++ default member initialization for primative types: Difference between revisions
m (Created page with '<geshi lang="C++"> #include <stdlib.h> #include <stdio.h> class X { public: int i; }; class Y { public: Y() {}; int i; }; int main(int argc, char** arg…') |
mNo edit summary |
||
Line 48: | Line 48: | ||
Y *y = new Y(): 0 | Y *y = new Y(): 0 | ||
</geshi> | </geshi> | ||
See also: http://stackoverflow.com/questions/2417065/c-does-the-default-constructor-initialize-built-in-types |
Latest revision as of 16:18, 30 June 2010
<geshi lang="C++">
- include <stdlib.h>
- include <stdio.h>
class X {
public: int i;
};
class Y {
public: Y() {}; int i;
};
int main(int argc, char** argv) {
X x; printf("X x: %d\n", x.i); X x2 = X(); printf("X x(): %d\n", x2.i); X *px = new X; printf("X *x = new X: %d\n", px->i); X *px2 = new X(); printf("X *x = new X(): %d\n", px2->i);
Y y; printf("Y y: %d\n", y.i); Y y2 = Y(); printf("Y y(): %d\n", y2.i); Y *py = new Y; printf("Y *y = new Y: %d\n", py->i); Y *py2 = new Y(); printf("Y *y = new Y(): %d\n", py2->i); return 0;
} </geshi>
<geshi> $ g++ -g testinit.C $ ./a.out X x: -1788433344 X x(): 0 X *x = new X: 0 X *x = new X(): 0 Y y: 1 Y y(): -1073747184 Y *y = new Y: 0 Y *y = new Y(): 0 </geshi>
See also: http://stackoverflow.com/questions/2417065/c-does-the-default-constructor-initialize-built-in-types