From 473ff0d70008dff87c3353f9291072f3e67d9976 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Tue, 1 Dec 2015 15:45:37 +0100 Subject: Extended c++ demo --- scripts/cxxdemo/firmware.cc | 50 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'scripts') diff --git a/scripts/cxxdemo/firmware.cc b/scripts/cxxdemo/firmware.cc index e0bddf0..638c0dd 100644 --- a/scripts/cxxdemo/firmware.cc +++ b/scripts/cxxdemo/firmware.cc @@ -3,12 +3,62 @@ #include #include +class ExampleBaseClass +{ +public: + ExampleBaseClass() { + std::cout << "ExampleBaseClass()" << std::endl; + } + + virtual ~ExampleBaseClass() { + std::cout << "~ExampleBaseClass()" << std::endl; + } + + virtual void print_something_virt() { + std::cout << "ExampleBaseClass::print_something_virt()" << std::endl; + } + + void print_something_novirt() { + std::cout << "ExampleBaseClass::print_something_novirt()" << std::endl; + } +}; + +class ExampleSubClass : public ExampleBaseClass +{ +public: + ExampleSubClass() { + std::cout << "ExampleSubClass()" << std::endl; + } + + virtual ~ExampleSubClass() { + std::cout << "~ExampleSubClass()" << std::endl; + } + + virtual void print_something_virt() { + std::cout << "ExampleSubClass::print_something_virt()" << std::endl; + } + + void print_something_novirt() { + std::cout << "ExampleSubClass::print_something_novirt()" << std::endl; + } +}; + int main() { printf("Hello World, C!\n"); std::cout << "Hello World, C++!" << std::endl; + ExampleBaseClass *obj = new ExampleBaseClass; + obj->print_something_virt(); + obj->print_something_novirt(); + delete obj; + + obj = new ExampleSubClass; + obj->print_something_virt(); + obj->print_something_novirt(); + delete obj; + std::vector some_ints; some_ints.push_back(0x48c9b3e4); some_ints.push_back(0x79109b6a); -- cgit