求解,关于c++指针问题

img


我画圈那里的指针前面为什么要写类而不写指针类型,写类B和D这两个指针区别又在哪呢?!

  1. 右值拿到的是类D的栈地址,左值可以使用其他的类型去指向,比如uint8_t *p=reinterpret_cast<uint8_t *>(&d);
  2. 区别在于pb、pd调用类成员函数会有差异,虚函数用的是d的函数在运行期决定的也都是D::f1;重载函数编译期决定,即指针的各自f2、f3;