什么是C中的:: *

当我面对时,我正在阅读一本基本的C教程
::*

在以下代码中.我可以知道那是什么:

class A {
public:
protected:
  int i;
};


class B : public A {
  friend void f(A*,B*);
  void g(A*);
};

void f(A* pa,B* pb) {
//  pa->i = 1;
  pb->i = 2;

//  int A::* point_i = &A::i;
  int A::* point_i2 = &B::i;
}

void B::g(A* pa) {
//  pa->i = 1;
  i = 2;

//  int A::* point_i = &A::i;
  int A::* point_i2 = &B::i;
}

void h(A* pa,B* pb) {
//  pa->i = 1;
//  pb->i = 2;
}

int main() { }

根据我的C知识到目前为止,我无法理解类似的东西

int A::* point_i2

你能救我吗?

谢谢.

解决方法

point_i2是指向成员的指针.这意味着它指向在类A中声明的int成员变量.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...