实例成员函数指针 的 一个小细节

你提供的代码定义了一个名为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::ppint a::*类型的指针,而b.pppint a::* a::*类型的指针的指针。

    b.ppp = &b.pp;  // 错误

    b.p = &b.pp;  
    b.p = &a::pp;  // 错误
};

这两行代码也是不正确的。因为b.p是指向int a::* *类型的指针,而b.pp是指向int a::*类型的指针。类型不匹配,不能将它们赋值给彼此。

你可能感兴趣的:(c++,c++)