📜  C++ |静态关键字|问题6

📅  最后修改于: 2021-05-26 01:17:44             🧑  作者: Mango

以下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基础课程》。