以下程序预期得结果15, 15, 16,但实际得结果15, 16, 16,为何?
// start of code
#include <stdio.h>
class X
{
public:
int *px;
X ( int init )
{
px = new int; *px = init;
}
~X () {
delete px;
}
};
void print ( X x )
{
printf ("%d\n", *x.px);
}
int main ()
{
X x(15); print(x);
X y(16); print(x); print(y);
return 0;
}
// end of code
// start of code
#include <stdio.h>
class X
{
public:
int *px;
X ( int init )
{
px = new int; *px = init;
}
~X () {
delete px;
}
};
void print ( X x )
{
printf ("%d\n", *x.px);
}
int main ()
{
X x(15); print(x);
X y(16); print(x); print(y);
return 0;
}
// end of code