Added example to main function

This commit is contained in:
2026-02-27 21:35:15 -05:00
parent aaa77f7ea5
commit 68a316354d

View File

@@ -1,8 +1,42 @@
#include <iostream> #include <iostream>
#include "typefactory.h"
#include <string>
using namespace std; using namespace std;
int main() { int main() {
cout << "Hello World!" << endl; 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; return 0;
} }