From 185888501011601a2c4aff318939fa0f4f59892c Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Sun, 24 Feb 2013 15:11:06 -0700 Subject: [PATCH] Add example of wrapping data members of a class #79 --- src/test_module.cpp | 10 +++++++--- unittests/inheritance.chai | 9 +++++++++ unittests/load_module.chai | 2 ++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/test_module.cpp b/src/test_module.cpp index 633b9de..313d29a 100644 --- a/src/test_module.cpp +++ b/src/test_module.cpp @@ -5,12 +5,14 @@ class TestBaseType { public: - TestBaseType() {} - TestBaseType(int) {} - TestBaseType(int *) {} + TestBaseType() : val(10), const_val(15) { } + TestBaseType(int) : val(10), const_val(15) {} + TestBaseType(int *) : val(10), const_val(15) {} virtual ~TestBaseType() {} virtual int func() { return 0; } + int val; + const int const_val; }; enum TestEnum @@ -68,6 +70,8 @@ CHAISCRIPT_MODULE_EXPORT chaiscript::ModulePtr create_chaiscript_module_test_mo m->add(chaiscript::base_class()); m->add(chaiscript::fun(&TestBaseType::func), "func"); + m->add(chaiscript::fun(&TestBaseType::val), "val"); + m->add(chaiscript::fun(&TestBaseType::const_val), "const_val"); m->add(chaiscript::fun(&get_new_int), "get_new_int"); diff --git a/unittests/inheritance.chai b/unittests/inheritance.chai index 1fcd346..0231a50 100644 --- a/unittests/inheritance.chai +++ b/unittests/inheritance.chai @@ -6,3 +6,12 @@ var t = TestDerivedType(); assert_equal(t0.func(), 0); assert_equal(t.func(), 1); +assert_equal(10, t0.val); +assert_equal(15, t0.const_val); + +assert_equal(10, t.val); +assert_equal(15, t.const_val); + +t.val = 23; +assert_equal(23, t.val) + diff --git a/unittests/load_module.chai b/unittests/load_module.chai index a231a20..8caa8fe 100644 --- a/unittests/load_module.chai +++ b/unittests/load_module.chai @@ -1,2 +1,4 @@ load_module("test_module") assert_equal("Hello World", hello_world()); + +