以下代码在我的vc9版本上编译:

wstring test2;
if (test2.find(L'c') == wstring.npos)
{
}

但本身
wstring.npos;

才不是。 (wstring::npos;正常工作)在我看来,这是100%错误。起初我以为可能正在构造wstring并且正在访问ala wstring().npos来访问npos成员,但是建议尝试快速进入该行。用我自己的结果模拟这种情况



但仍然可以编译。

仅出于我的理智-此语法不起作用,对吧?鉴于它确实起作用,为什么表达式wstring.npos;失败?

最佳答案

wstring.npos应该为而不是起作用,因为nposstatic成员,可以使用范围解析运算符(wstring::npos)的类名或通过点运算符(wstring str; str.npos;)的类实例进行访问。

10-08 09:48