fork download
  1. #include <iostream>
  2. #include <memory>
  3. using namespace std;
  4.  
  5. class Base{
  6. public:
  7. virtual void do_something(int a) = 0;
  8. virtual ~Base(){};
  9.  
  10. };
  11.  
  12. template<typename T>
  13. class Concrete : public Base{
  14.  
  15. T _t;
  16. public:
  17. Concrete(){};
  18. virtual void do_something(int a);
  19. virtual ~Concrete();
  20. };
  21.  
  22. template<typename T>
  23. void Concrete<T>::do_something(int a){
  24. std::cout << a << std::endl;
  25. }
  26. template<typename T>
  27. Concrete<T>::~Concrete(){}
  28.  
  29. int main(int argc, char **argv) {
  30.  
  31.  
  32. std::unique_ptr<Base> b(new Concrete<int>());
  33. b->do_something(5);
  34. }
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
5