下面几个题分别输出啥,为啥???
1.
#include <iostream>
using namespace std;
int main()
{
float a = 1;
cout<<boolalpha<<( (int)a == (int&)a );
float b = 0;
cout<<boolalpha<<( (int)b == (int&)b );
return 0;
}
2.
#include <iostream>
using namespace std;
class A
{
public:
A()
{
printf("A");
}
};
int main()
{
A *p1 = new A;
A *p2 = malloc(sizeof(A));
return 0;
}
3.
#include <iostream>
using namespace std;
class A
{
public:
A()
{
i = 3;
}
void foo()
{
printf("%d\n",i);
}
private:
static int i;
};
int main()
{
A a;
a.foo();
return 0;
}
4.
#include <iostream>
using namespace std;
typedef void (*PFN)();
class A
{
public:
void foo()
{
run(func);
}
private:
void run(PFN pfn) {pfn();}
void func() {printf("run\n");}
};
int main()
{
A a;
a.foo();
return 0;
}
5.
#include <iostream>
using namespace std;
typedef void (*PFN)();
class A
{
A()
{
printf("A()");
}
public:
static A &get()
{
static A a;
return a;
}
};
int main()
{
A::get();
return 0;
}