诸葛亮 发表于 2010-5-31 15:48:48

gameloft笔试的几道经典原题

有几道题还是比较经典。

#include <iostream>
using namespace std;

void func(float f)
{
printf("%f\n",f);
}

void func(int i)
{
printf("%d\n",i);
}

int main(int argc,char *argv[])
{
func(1.2);
return 0;
}
以上代码在VC中编译有一条错误ambiguous call to overloaded function,问题在于函数重载存在二义性。
解决方法:
(1)、将void func(float f)改为void func(double f)
(2)、将void func(float f)加上一个未定义参数,如void func(float f,int),在main函数中如此调用:
   func(1.2,0);
以上两种方法均能得到正确结果。


#include <iostream>
using namespace std;

int count=0;

class object
{
public:
object(){count++;}

~object(){count--; }
};

int main(int argc,char *argv[])
{
object A,B,C;
printf("%d\n",count);

object D;
return 0;
}
正确结果:3。
首先建立3个对象,分别调用3次构造函数,C的构造函数调用后count值应是3。

kylin1230 发表于 2018-2-26 22:37:25

{:6_267:}
页: [1]
查看完整版本: gameloft笔试的几道经典原题