Merge remote-tracking branch 'origin/master' into Sound
This commit is contained in:
@@ -54,12 +54,19 @@ file(GLOB SOURCE_FILES_Transform
|
|||||||
)
|
)
|
||||||
source_group(Transform FILES ${SOURCE_FILES_Transform})
|
source_group(Transform FILES ${SOURCE_FILES_Transform})
|
||||||
|
|
||||||
|
file(GLOB SOURCE_FILES_Game
|
||||||
|
"${INCLUDE_PATH}/Game/*.h"
|
||||||
|
"Game/*.cpp"
|
||||||
|
)
|
||||||
|
source_group(Game FILES ${SOURCE_FILES_Game})
|
||||||
|
|
||||||
set(SOURCE_FILES
|
set(SOURCE_FILES
|
||||||
${SOURCE_FILES_Core}
|
${SOURCE_FILES_Core}
|
||||||
${SOURCE_FILES_Core_Util}
|
${SOURCE_FILES_Core_Util}
|
||||||
${SOURCE_FILES_Input}
|
${SOURCE_FILES_Input}
|
||||||
${SOURCE_FILES_Rendering}
|
${SOURCE_FILES_Rendering}
|
||||||
${SOURCE_FILES_Transform}
|
${SOURCE_FILES_Transform}
|
||||||
|
${SOURCE_FILES_Game}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
|||||||
Executable
+80
@@ -0,0 +1,80 @@
|
|||||||
|
#ifndef FILENAME_H__
|
||||||
|
#define FILENAME_H__
|
||||||
|
|
||||||
|
namespace dd
|
||||||
|
{
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
class BaseClassName
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
BaseClassName(T* child)
|
||||||
|
: m_Child(child) { }
|
||||||
|
|
||||||
|
virtual bool PublicMemberFunction(bool value) = 0;
|
||||||
|
|
||||||
|
private:
|
||||||
|
T* m_Child = nullptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ClassName : public BaseClassName<ClassName>
|
||||||
|
{
|
||||||
|
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 <typename T>
|
||||||
|
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
|
||||||
Reference in New Issue
Block a user