美文网首页
C++ 如何验证this指针与ptr指针在类中的存在

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

作者: 锋芒不露大宝剑 | 来源:发表于2019-06-10 00:33 被阅读0次
#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;
}

相关文章

网友评论

      本文标题:C++ 如何验证this指针与ptr指针在类中的存在

      本文链接:https://www.haomeiwen.com/subject/eynoxctx.html