我仍在学习 C++,而且我之前从未真正创建过自己的命名空间。我正在对它们进行试验,虽然我可以完成大部分工作,但我似乎仍然无法做一件事。我希望能够在类中调用静态方法,而无需键入类似NameOfClass::method
. 这是我认为代码应该看起来的样子,但它无法编译:
文件A.h
,
namespace Test
{
class A
{
public:
static int foo() { return 42; }
};
}
文件main.cpp
,
#include <iostream>
#include "A.h"
using namespace std;
using namespace Test::A;
int main()
{
cout << foo() << endl;
return 0;
}
编译器给了我:
main.cpp:6: error: ‘A’ is not a namespace-name
main.cpp:6: error: expected namespace-name before ‘;’ token
main.cpp: In function ‘int main()’:
main.cpp:10: error: ‘foo’ was not declared in this scope
是否可以在不打字的情况下做我想做的事情A::foo
?