在命名成员函数重载决策期间,'this'何时不在范围内?

led*_*ter 3 c++ overloading overload-resolution c++14

cppreference:

调用命名函数

<...>如果表达式E是主表达式,则按照函数调用的正常规则(可能涉及ADL)查找名称.此查找找到的函数声明(由于查找的工作方式):<...>

b)某些类T的所有成员函数,在这种情况下,如果它在范围内并且引用T,则*将其用作隐含对象参数.否则(如果它不在范围内或者不指向T),则使用类型为T的伪对象作为隐含对象参数,如果重载决策随后选择非静态成员函数,则程序格式错误.

似乎第二种情况是关于func(arg)方法内部的调用.何时可能this不在此类案件的范围内?

或者它不只是谈论func(arg)方法中的类似东西?

Bar*_*rry 6

何时可能this不在此类案件的范围内?

静态成员函数.

  • @codekaizer不指向`T`意味着调用一些*other*class'成员函数,而不是我们自己的. (3认同)