在 C++ 中考虑语法规则:
member-access-expression
: LHS
member-access-operator
RHS
(op 是 .
)
和
LHS
=unqualified id-expression
例如引用实例变量。
RHS
=qualified id-expression
(至少有一个嵌套标识符)
示例:a.b::c
如果它可以通过语义检查,那会是什么情况?
以下实验:
struct B{};
struct A
{
B b;
};
int main()
{
A a;
a.b::c;
}
返回
'b' is not a class, namespace, or enumeration
a.b::c;
^
( demo )
这往往向我暗示,在成员(member)访问权上不可能有任何合格 ID 的法律案例。
最佳答案
一个非常简单的例子是如果你想调用父类的成员函数:
struct A {
void f();
};
struct B: A {
void f();
};
B b;
b.A::f();
关于c++ - 是否存在表达式 `a.b::c` 有意义的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56253767/