struct B1{
int d;
void fb(){};
};
struct B2 : B1{
using B1::d;
using B1::fb;
int d; // why this gives error?
void fb(){} // and this does not?
};
int main(){}
是因为,B1::fb()
被视为B1::fb(B1*)
and B2::fb()
被视为B2::fb(B2*)
?也就是说,隐式参数是否有助于区分这些?
$13.3.1/4-
对于通过 using 声明引入派生类的非转换函数,为了定义隐式对象参数的类型,该函数被认为是派生类的成员。