小编Swa*_*ppy的帖子

从void*转换为c ++中的对象数组

我有问题让这个工作,

class A {
public:
    A(int n) {
        a = n;
    }
    int getA() {
        return a;
    }
private:
    int a;
};

int main(){

    A* a[3];
    A* b[3];

    for (int i = 0; i < 3; ++i) {
        a[i] = new A(i + 1);
    }

    void * pointer = a;

    b = (A* [])pointer;  // DOESNT WORK Apparently ISO C++ forbids casting to an array type ‘A* []’.
    b = static_cast<A*[]>(pointer); // DOESN'T WORK invalid static_cast from type ‘void*’ to …
Run Code Online (Sandbox Code Playgroud)

c++ arrays casting void-pointers

3
推荐指数
2
解决办法
8517
查看次数

标签 统计

arrays ×1

c++ ×1

casting ×1

void-pointers ×1