MCPcopy Create free account
hub / github.com/PolygonTek/BlueshiftEngine / TestInheritance

Function TestInheritance

Source/TestBase/TestLua.cpp:72–103  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

70};
71
72static void TestInheritance(LuaCpp::State &lua) {
73 auto luaBase = lua["Base"];
74 luaBase.SetClass<Base>();
75 luaBase.AddClassCtor<Base>();
76 luaBase.AddClassMembers<Base>(
77 "x", &Base::x,
78 "y", &Base::y,
79 "z", &Base::z,
80 "func1", &Base::Func1,
81 "func2", &Base::Func2);
82
83 auto luaDerived = lua["Derived"];
84 luaDerived.SetClass<Derived>(luaBase);
85 luaDerived.AddClassCtor<Derived>();
86 luaDerived.AddClassMembers<Derived>(
87 "func2", &Derived::Func2);
88
89 lua(R"(
90 base = Base()
91 b1 = base:func1()
92 b2 = base:func2()
93
94 derived = Derived()
95 d1 = derived:func1() -- call base function
96 d2 = derived:func2() -- call overrided function
97 )");
98
99 assert(lua["b1"] == 1);
100 assert(lua["b2"] == 2);
101 assert(lua["d1"] == 1);
102 assert(lua["d2"] == 20);
103}
104
105class VirtualBase {
106public:

Callers 1

TestLuaFunction · 0.85

Calls 1

luaClass · 0.50

Tested by

no test coverage detected