你提供的代码定义了一个名为a
的类,并初始化了一个名为b
的对象。代码还包括一个main
函数。
让我们逐步解析这段代码:
class a {
public:int a::* * p; // 指向int成员指针的指针int a::* pp; // 指向int成员的指针int a::* a::* ppp; // 指向int成员指针的指针的指针
} b;
在这段代码中,a::*
代表指向a
类的int
成员的指针。因此,int a::* * p
是指向int
成员指针的指针,int a::* pp
是指向int
成员的指针,int a::* a::* ppp
是指向指向int
成员指针的指针。
int main() {b.ppp = &a::pp;
这行代码将b.ppp
指向a::pp
,这是不正确的。因为a::pp
是int a::*
类型的指针,而b.ppp
是int a::* a::*
类型的指针的指针。
b.ppp = &b.pp; // 错误b.p = &b.pp; b.p = &a::pp; // 错误
};
这两行代码也是不正确的。因为b.p
是指向int a::* *
类型的指针,而b.pp
是指向int a::*
类型的指针。类型不匹配,不能将它们赋值给彼此。