Program Listing for File BaseClass.h

Return to documentation for file (arbitrary/BaseClass.h)

#pragma once

#include <arbitrary/common.h>

NAMESPACE_BEGIN(arbitrary)

#define AN_ARBITRARY_DEFINE 11

namespace nested {
    struct int2 {
        int2() : x(0), y(0) {}

        int2(int _x, int _y) : x(_x), y(_y) {}

        int x;
        int y;
    };

    namespace dual_nested {
        struct int3 {
            int3() : x(0), y(0), z(0) {}

            int3(int _x, int _y, int _z) : x(_x), y(_y), z(_z) {}

            int x;
            int y;
            int z;
        };
    }
}

class BaseClass {
public:
    BaseClass() = delete;

    virtual ~BaseClass() {}

    virtual void virtualMethod() = 0;

    virtual unsigned int getData() {
        return some_data;
    }

protected:
    BaseClass(unsigned int data) : some_data(data) {}

    unsigned int some_data = 0;
};

NAMESPACE_END(arbitrary)