brintos

brintos / llvm-project-archived public Read only

0
0
Text · 906 B · 78cac2c Raw
70 lines · cpp
1#include <stdio.h>2#include <stdint.h>3 4class A5{6public:7    A(int a) : 8        m_a(a)9    {10    }11    virtual ~A(){}12    virtual int get2() const { return m_a; }13    virtual int get() const { return m_a; }14protected:15    int m_a;    16};17 18class B : public A19{20public:21    B(int a, int b) : 22        A(a),23        m_b(b)24    {25    }26 27    ~B() override28    {29    }30 31    int get2() const override32    {33        return m_b;34    }35    int get() const override36    {37        return m_b;38    }   39            40protected:41    int m_b;42};43 44struct C45{46    C(int c) : m_c(c){}47    virtual ~C(){}48    int m_c;49};50 51class D : public C, public B52{53public:54    D(int a, int b, int c, int d) : 55        C(c),56        B(a, b),57        m_d(d)58    {59    }60protected:61    int m_d;62};63int main (int argc, char const *argv[], char const *envp[])64{65    D *good_d = new D(1, 2, 3, 4);66    D *d = nullptr;67    return d->get();68}69 70