我在这里有这段代码,我在名称空间中使用静态函数创建了结构:
namespace Hashing {
///...
struct Hash {
///...
static void init(int n, const ull m = 31ull) {
///...
}
};
///...
}
我在main中使用以下代码:
int main() {
///...
Hashing::Hash.init(12);
///...
}
发生错误:
error: expected unqualified-id before '.' token
Hashing::Hash.init(12);
^
为什么?
将其更改为:Hashing::Hash::init(12);
。静态成员函数不与任何对象关联。
用::
调用静态方法,例如Hash::init()
。
使用.
用于成员函数和变量。类Hash
不是成员,但是Hash h
将是成员。
.
应该是::
。
编辑代码:
#include <iostream>
namespace Hashing{
struct Hash{
static void print(int num){
std::cout<<num<<"\n";
}
};
}
int main() {
Hashing::Hash::print(12);
}