I've been looking at examples for a component-based system and in some of the examples, I noticed the usage of class names outside of other classes like in the example below. What is the purpose/function of creating class Foo;
and class Bar;
and what is this called?
#pragma once
#include "foo.h"
#include "bar.h"
class Foo; // ???
class Bar; // ???
class Example
{
public:
Example() :
m_pExample(0) {}
virtual ~Example() {}
void something(const Foo& foo, const Bar& bar);
private:
Example* m_pExample;
};