我是 C++ 的新手,刚从 Java 转过来,对此感到疑惑:
pos = result.find(remove[i]);
if (pos == string::npos)
它是在调用字符串“superclass”吗?我很困惑,如果它正在调用类本身来访问常量“npos”,如果我在我的函数中声明了几个字符串变量,它怎么知道它是类的哪个实例?
最佳答案
npos
未绑定(bind)到实例,而是绑定(bind)到类本身。它是一个static
成员。 Java 中也有 static
成员。
21.4 类模板basic_string [basic.string]
[...]
namespace std {
template<class charT, class traits = char_traits<charT>,
class Allocator = allocator<charT> >
class basic_string {
public:
//...
static const size_type npos = -1;
//...
};
std::string
是 basic_string
的特化。
关于c++ string::npos 是调用字符串类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13266701/