diff options
author | Clifford Wolf <clifford@clifford.at> | 2015-12-01 15:45:37 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2015-12-01 15:45:37 +0100 |
commit | 473ff0d70008dff87c3353f9291072f3e67d9976 (patch) | |
tree | 90bf596482bf9372c72f821fe97c07fb5048c51b /scripts/cxxdemo | |
parent | f2566561b0fdb91504131ac60db4499b28feb03f (diff) | |
download | picorv32-473ff0d70008dff87c3353f9291072f3e67d9976.tar.gz picorv32-473ff0d70008dff87c3353f9291072f3e67d9976.zip |
Extended c++ demo
Diffstat (limited to 'scripts/cxxdemo')
-rw-r--r-- | scripts/cxxdemo/firmware.cc | 50 |
1 files changed, 50 insertions, 0 deletions
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 <vector> #include <algorithm> +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<unsigned int> some_ints; some_ints.push_back(0x48c9b3e4); some_ints.push_back(0x79109b6a); |