From that article:
==============================
An interface class in C++ is a class that has only pure virtual member functions. An interface class defines the member function signatures of the interface methods. A class implements that interface by inheriting the interface class, and then implements each of the pure virtual member functions. For example:
//CallSwitch.h class CallSwitch { public: virtual void Connect(User* a, User* b) = 0; };
// CircuitSwitchImplementation.h class CircuitSwitchImplementation : public CallSwitch { public: virtual void Connect(User* a, User* b); //implemented in the Cpp file };
==============================
No, thanks.
But the empirical evidence is overwhelming; Microsoft, Oracle, SAP, Adobe, Norton. Can *anyone* write big software systems that aren't a mess? If decoupling doesn't work on tiny systems, and it doesn't work on big systems, does it for some reason work in the middle?
Modularity is necessary to manage big systems. If it's used to hide from reality, it becomes "abstraction." Most of the articles praising OO concepts and abstraction point out its chief benefit to the programmer: you don't have to think about, know about, or bother your pretty head trying to understand all that nasty hardware.
John