I have seen this many times and I can't describe it well enough to google search it:
What is the difference between "Foo" and "Bar" in the following code sample?
class Base {
public:
Base(){}
~Base(){}
};
class Foo : Base {
};
class Bar : public Base {
};
What is this distinction called?