Original Post
My first problem is: My second question, I have heard that avoid multiple inheritance is a good practice, but is a good practice do this for almost all classes ? class A : public ErrorHandling, public ClassInformation, public InterfaceA {}; ErrorHandling is a class like the one described in effective C++, ClassInformation is a class that have methods to count instances, get class size, get this pointer and such of things. thnx
class IBase {
public:
virtual void func1() = 0;
virtual void func2() const = 0;
virtual void func3() = 0;
};
class Derived : public IBase {
public:
void func1() { ... }
void func2() const { ... }
void func3() { ... }
void func4() { ... }
};
IBase *b = new Derived();
b->func1(); // ok
b->func2(); // ok
b->func3(); // ok
b->func4(); // compiling error, why ?
delete b;