I am learning c++ and confused about the ways to include another class in current class. For example, I am wondering whether class QuackBehavior equals to #include <QuackBehavior.h>. If they are equal, what are the differences between these two ways? The code is : 
#include <string>
class QuackBehavior;
class Duck {
public:
    Duck();
    virtual ~Duck() {};
    virtual void performQuack();
    virtual std::string getDescription() = 0;
    std::string getName() {return m_name;}
    void setName(std::string name ) {m_name = name;}
    void setQuackBehavior(QuackBehavior * behavior);
protected:
    std::string m_name;
    QuackBehavior * m_quackBehavior;
};
Thank you so much.
 
     
    