以下C++程序的输出?
#include
class Test
{
public:
void fun();
};
static void Test::fun()
{
std::cout<<"fun() is static\n";
}
int main()
{
Test::fun();
return 0;
}
由Pravasi Meet提供
(A) fun()是静态的
(B)空萤幕
(C)编译器错误答案: (C)
说明:上面的程序编译失败,并显示以下错误消息。
[错误]无法声明成员函数’void Test :: fun()’具有静态链接[-fpermissive]
在函数’int main()’中:
[错误]无法在没有对象的情况下调用成员函数’void Test :: fun()’
如果要在类外部定义静态函数,则static关键字必须仅在函数声明中出现,而不能在类外部的定义中出现。
现在,以下程序是正确的。
#include
class Test
{
public:
static void fun();
};
void Test::fun()
{
std::cout<<"fun() is static\n";
}
int main()
{
Test::fun();
return 0;
}
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。