C++ 如何验证this指针与ptr指针在类中的存在

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <string>

using namespace std;

class Parent {

public:

    Parent() {};
    Parent(int a) : _a(a) {};
    ~Parent() {};
    virtual void print() {
        cout << "Parent: a=" << _a << endl;
    };

protected:
    int getA() {
        return _a;
    }

private:
    int _a;
};

class Child: public Parent {
public:
    Child() {};
    Child(int a, int b) :Parent(a), _b(b) {};
    ~Child() {};
    virtual void print() {
        cout << "Child: a="<< this->getA() <<", b=" << this->_b << endl;
};

protected:
private:
int _b;
};

void print(Parent *p) {
    p->print();
}

void a() {
    cout << "213" << endl;
}

int main(int argc, char* argv[]) {
    Parent *p = new Parent(10);
    Parent *c = (Parent *)new Child(20, 30);
    typedef void(Func1)(Parent *p);

    int *ptr = (int *)( ( (int *)c )[0] );

    Func1 *f = (Func1 *)( *(ptr + 0) );
    f(new Child(20, 40));
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容