我有一个头文件helper.h
class helper
{
public:
static int someVal();
};
int helper::someVal()
{
return 999;
}在我的c类中,我按如下方式调用someVal方法
#include "helper.h"
.
.
int answer = helper::someVal();有没有办法打这样的电话呢?
int answer = someVal();下面的解决方案是helper.h --
static int someVal();
int someVal()
{
return 999;
}发布于 2012-12-03 01:26:56
不完全是,但您可以使helper成为一个名称空间而不是一个类:
namespace helper
{
static int someVal();
}
using namespace helper;
int answer = someVal();您可以像在问题中所做的那样定义函数。在实践中,最好不要将using namespace用于您自己的函数,因为这样可以更容易地理解调用了哪个函数。
发布于 2012-12-03 01:27:19
如果您只有一个带有static函数的类,那么您可以使用带有函数的namespace。稍后,您可以使用using namespace访问不带名称空间名称的函数。
发布于 2012-12-03 01:48:38
你为什么要这么做呢?阅读代码的人(甚至是不久的将来的你自己)很有可能不会将函数误解为全局函数。当你对类和成员函数进行良好的命名时,如果没有类名,你将会错过重要的信息。与get_instance()相比,Factory::get_instance()承载的信息更多。
https://stackoverflow.com/questions/13671726
复制相似问题