Added example to main function
This commit is contained in:
@@ -1,8 +1,42 @@
|
||||
#include <iostream>
|
||||
#include "typefactory.h"
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
cout << "Hello World!" << endl;
|
||||
|
||||
struct Base {
|
||||
virtual ~Base() = default;
|
||||
virtual int get() = 0;
|
||||
};
|
||||
|
||||
struct Derived1 : Base {
|
||||
explicit Derived1 (int start) : m_start (start) {}
|
||||
int get() override {
|
||||
return m_start + 1;
|
||||
}
|
||||
int m_start = 0;
|
||||
};
|
||||
|
||||
struct Derived2 : Base {
|
||||
explicit Derived2 (int start) : m_start (start) {}
|
||||
int get() override {
|
||||
return m_start + 2;
|
||||
}
|
||||
int m_start = 0;
|
||||
};
|
||||
|
||||
TypeFactory<std::string, Base, int> factory;
|
||||
factory.registerType<Derived1> ("one");
|
||||
factory.registerType<Derived2> ("two");
|
||||
|
||||
auto a = factory.create ("one", 10);
|
||||
auto b = factory.creator ("two") (10); // advanced API: get creator function
|
||||
|
||||
(void)a->get();
|
||||
(void)b->get();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user