I would like to use the "Strategy" design pattern, and have just one simple question.
We have two classes: Base as an abstract class and Derived as a concrete class. 
#include <iostream>
using namespace std;
class Base {
public:
    virtual void func() = 0;
};
class Derived : public Base{
public:
    virtual void func() override
    {
        printf("hello \n"); 
    }
};
int main(){
    Base * base = new Derived();
    base->func();
    Derived derived2;
    Base & base2 = derived2;
    base2.func();
    return 0;
}
Using pointer,
Base * base = new Derived();
Using reference
Derived derived2; 
Base & base2 = derived2; 
- Is there any way to write in one line for reference?
- Which method are you guys use to implement the "strategy" design pattern, using pointer or reference?
Because of the reason above, I tend to use pointer... but I would like an answer from experts.
 
     
    