Once you accept that abstract interfaces (which contain
public pure virtual functions) are fine all bets are off
and this rule of yours (and Herb's) falls over.
Ignoring the fallacy of begging the question, it is totally
ignorant to claim that "abstract interface" == "*public*
pure virtual functions". Are you sure you want to make that
claim? Here is an abstract interface
class Foo
{
public :
void func ( ) { implFunc() ; }
protected :
virtual void implFunc ( ) = 0 ;
} ;
Notice there is no *public* pure virtual.
You know, really, do think it is that simple? Do think that
all these experts who have actually *thought* (as opposed to
just *felt*) about this topic forgot abstract bases? Do you
think all it takes if for Leigh to wave "abstract
interfaces" in their face and then all their reasoning just
"falls over"? Really man, get ahold of yourself. Don't be
so vociferously ignorant. At least learn about a topic
before publicly flailing and crying about it.