小编six*_*r24的帖子

C++通过指针访问私有功能

说我有以下内容:

class A {
private:
    int a;
    virtual int f() {return a;}
public:
    A(int t) {a = t;}
};
Run Code Online (Sandbox Code Playgroud)

现在,int A::f()如果给出指向A对象的指针,如何访问?我知道如何得到一个!

void main () {
    A* x = new A(5);
    cout << ((int*)x)[2]; // returns 5;
}
Run Code Online (Sandbox Code Playgroud)

但现在确定如何运行A :: f().

更新:我知道这不是一个好的设计,并且私有应该被隐藏.问题只是要知道如何将类放入编译器的内存中.

c++ pointers class vtable

1
推荐指数
1
解决办法
1630
查看次数

标签 统计

c++ ×1

class ×1

pointers ×1

vtable ×1