代码之家  ›  专栏  ›  技术社区  ›  Programmer

静态_强制转换为结构类型以访问其所有成员变量[closed]

  •  -2
  • Programmer  · 技术社区  · 6 年前

    我的结构如下:

    struct Param
    {
        Param(const void* a, const std::vector<int>& b) : c(a), d(b) {}
        const void* c;  
        const std::vector<int> d; 
    };
    

    现在,在创建Param struct的新实例之后,我将类实例“this”指针存储在成员变量c中。以后在C API(C++代码里面)我需要引用类指针来调用一个方法:

    static_cast<ClassA*>(static_cast<Param*>(var->addr)->c)->ClassAMethod()
    

    1 回复  |  直到 6 年前
        1
  •  1
  •   George    6 年前

    你不能用它来抛弃康斯特内斯 static_cast ClassMethodA() const 那你可以用 static_cast<const ClassA*>(static_cast<Param*>(var->addr)->c)->ClassAMethod() c 常数 然后你可以使用 const_cast 首演 打字 void* .