Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
IceCream
//g++ 7.4.0 #include <iostream> #include <vector> #include <string> class IIceCream { public: virtual std::string print() = 0; }; template<typename T> class IceCream final : public IIceCream { public: IceCream(T your_choice) { mChoosen = your_choice; } std::string print() final { return std::to_string(static_cast<typename std::underlying_type<T>::type>(mChoosen)); } friend std::ostream& operator<< (std::ostream& out, const IceCream<T>& day); private: T mChoosen; }; enum class My_creams { CORNETTO, SANDWHICH, TIPTOP, }; template <typename T> std::ostream& operator<< (std::ostream& out, const IceCream<T>& day) { std::cout << "test"; } int main() { auto my_best = My_creams::TIPTOP; auto my_best_ice_cream = new IceCream<My_creams>(my_best); auto my_selection = std::vector<IIceCream *>(); my_selection.push_back(my_best_ice_cream); for (auto aCream : my_selection) { std::cout << aCream->print(); } }
run
|
edit
|
history
|
help
0
Anagrams WIP
cp.cpp
xyp
Dulce enredo p1
enums
strange builtin_offseof behavior
Building squares using smallest amount of matches
lab17feb22x4B.cpp
IviewwithSelf
search_n algorithm