1、下列代码编译时会产生错误的是()
#include <iostream>
using namespace std;
struct Foo
{
Foo() { }
Foo(int) { }
void fun() { }
};
int main(void)
{
Foo a(10); //语句1
a.fun(); //语句2
Foo b(); //语句3
b.fun(); //语句4
return 0;
}
A、语句1 B、语句2 C、语句3 D、语句4
这个问题要看编译器怎样理解。
编译器会把 Foo b();误解成一个函数b()的声明,而这个函数的返回值是Foo。
b被理解成函数。下面的语句4当然就被报错了。
构造不含参的对象应该这样:Foo b;
2、判断一个单向链表中是否存在环的最佳方法是()