[ create a new paste ] login | about

Link: http://codepad.org/ePQFTVXA    [ raw code | output | fork ]

C++, pasted on Nov 8:
#include <iostream>
using namespace std;
 
class a
{
protected:
    int A;
    public:
    a() : A(0) {
        cout<<"DC : A OBJ CREATED : "<<(size_t)(this)<<endl;
    }
    int data() const {
        return A;
    }
    virtual ~a(){}
};
 
class b: public a
{
protected:
    int B;
    public:
    b() : B(1) { a::A = B; }
};
 
class c: public a
{
protected:
    int C;
    public:
    c() : C(2) { a::A = C; }
};
 
int main(){
    b B;
    c C;
    a * ptrB = dynamic_cast<a *>(&B);
    a * ptrC = dynamic_cast<a *>(&C);
    if( ptrB &&ptrC )
        *ptrB = *ptrC;
    cout<<B.data()<<endl;
    return 0;
}


Output:
1
2
3
DC : A OBJ CREATED : 4291585440
DC : A OBJ CREATED : 4291585428
2


Create a new paste based on this one


Comments: