贾167 2022-10-23 09:37 采纳率: 87.5%
浏览 25

c++代码小问题有代码

下面的c++代码在VS上走不了,(别的编译器能走)

#include <iostream>
using namespace std;
class Base {

public:

    virtual void f() { cout << "Base::f" << endl; }

    virtual void g() { cout << "Base::g" << endl; }

    virtual void h() { cout << "Base::h" << endl; }

};#include <iostream>
using namespace std;
class Base {

public:

    virtual void f() { cout << "Base::f" << endl; }

    virtual void g() { cout << "Base::g" << endl; }

    virtual void h() { cout << "Base::h" << endl; }

};
typedef void(*Fun)(void);

int main()
{
Base b;

Fun pFun = NULL;

cout << "虚函数表地址:" << (int*)(&b) << endl;
cout << "虚函数表地址:" << (&b) << endl;
cout << "虚函数表 — 第一个函数地址:" << (int*)*(int*)(&b) << endl;   //指针的指针

// Invoke the first virtual function

pFun = (Fun)*((int*)*(int*)(&b+0));

pFun();
    return 0;
}
typedef void(*Fun)(void);

int main()
{
Base b;

Fun pFun = NULL;

cout << "虚函数表地址:" << (int*)(&b) << endl;
cout << "虚函数表地址:" << (&b) << endl;
cout << "虚函数表 — 第一个函数地址:" << (int*)*(int*)(&b) << endl;   //指针的指针

// Invoke the first virtual function

pFun = (Fun)*((int*)*(int*)(&b+0));

pFun();
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 地球屋里老师 2022-10-23 10:03
    关注

    代码重复,去掉重复部分。

    img

    #include <iostream>
    using namespace std;
    class Base {
    
    public:
    
      virtual void f() { cout << "Base::f" << endl; }
    
      virtual void g() { cout << "Base::g" << endl; }
    
      virtual void h() { cout << "Base::h" << endl; }
    
    };
    typedef void(*Fun)(void);
    
    
    
    int main()
    {
      Base b;
    
      Fun pFun = NULL;
    
      cout << "虚函数表地址:" << (int*)(&b) << endl;
      cout << "虚函数表地址:" << (&b) << endl;
      cout << "虚函数表 — 第一个函数地址:" << (int*)*(int*)(&b) << endl;   //指针的指针
    
      // Invoke the first virtual function
    
      pFun = (Fun) * ((int*)*(int*)(&b + 0));
    
      pFun();
      return 0;
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 10月23日

悬赏问题

  • ¥15 网络分析设施点无法识别
  • ¥15 状态图的并发态问题咨询
  • ¥15 PFC3D,plot
  • ¥15 VAE模型编程报错无法解决
  • ¥100 基于SVM的信息粒化时序回归预测,有偿求解!
  • ¥15 物体组批优化问题-数学建模求解答
  • ¥350 麦克风声源定位坐标不准
  • ¥15 apifox与swagger使用
  • ¥15 egg异步请求返回404的问题
  • ¥20 Ti毫米波雷达板同步