diff --git a/tools/StyleGuide.h b/tools/StyleGuide.h new file mode 100755 index 0000000..bdb250e --- /dev/null +++ b/tools/StyleGuide.h @@ -0,0 +1,80 @@ +#ifndef FILENAME_H__ +#define FILENAME_H__ + +namespace dd +{ + +template +class BaseClassName +{ +public: + BaseClassName(T* child) + : m_Child(child) { } + + virtual bool PublicMemberFunction(bool value) = 0; + +private: + T* m_Child = nullptr; +}; + +class ClassName : public BaseClassName +{ +public: + // Constructor + ClassName(int arg1) + : BaseClassName(this) + , m_PrivateMember1(arg1) { } + + // Destructor + ~ClassName() + { + if (m_PrivateMember2 != nullptr) { + delete m_PrivateMember2; + m_PrivateMember2 = nullptr; + } + } + + // Getter + int& PrivateMember1() const { return m_PrivateMember1; } + // Setter + void SetPrivateMember1(const int& privateMember1) { m_PrivateMember1 = privateMember1; } + + // Public member function + template + bool PublicMemberFunction(bool value) override + { + if (!value) { + return false; + } + + if (m_PrivateMember2 != nullptr) { + return true; + } else { + return false; + } + } + +private: + // Private members with default values + int m_PrivateMember1 = 1; + int* m_PrivateMember2 = nullptr; + + // Private member function + bool privateMemberFunction() + { + switch (m_PrivateMember1) + { + case 1: + m_PrivateMember2 = new ClassName(2); + break; + default: + return false; + } + + return false; + } +}; + +} + +#endif \ No newline at end of file