一个不需要实例的类

Shi*_*bli 2 c++ class instance

是否有可能创建一个不需要实例化的类?换句话说,是否可以使用该类的函数而不具有它的实例?

The*_*dis 6

您可以使用静态函数,这些函数绑定到Class,而不是实例.

class Test{
    static void 
    doSomething()
    {
        std::cout << "something" << std::endl;
    }
}

int
main(int argc, char** argv)
{
    Test::doSomething(); //prints "something" without instance of Test
}
Run Code Online (Sandbox Code Playgroud)

否则你可以构建一个Singleton,在这种情况下类本身会保存实例,但我不确定这是否是你想知道的...

  • 虽然记住这很少有用,因为你也可以在任何类之外定义一个名为`doSomething`的函数.您甚至可以将其放在名为`Test`的命名空间中.但是,它通常对模板有用,因为类可以是模板参数,但命名空间不能.因此,您可以将函数组合在一起,然后告诉模板使用该类. (2认同)