再会,
我遇到了这个问题,但我对维基百科上列出的“成员指向的对象......”类型运算符特别感兴趣。
我从未在实际代码的上下文中看到过这一点,所以这个概念对我来说似乎有些深奥。
我的直觉说它们应该按如下方式使用:
struct A
{
int *p;
};
int main()
{
{
A *a = new A();
a->p = new int(0);
// if this did compile, how would it be different from *a->p=5; ??
a->*p = 5;
}
{
A a;
a.p = new int(0);
// if this did compile, how would it be different from *a.p=5; ??
a.*p = 5;
}
return 0;
}
但这不会编译,因为p
未声明。(见示例)
谁能提供一个在 C++ 中使用 operator->* 和/或 .* 的真实示例?