Compiler Warning (level 4) C4670

'identifier' : this base class is inaccessible

The specified base class of an object to be thrown in a try block is not accessible. The object cannot be instantiated if it is thrown. Check that the base class is inherited with the correct access specifier.

The following example causes this warning:

class A {};
class B : A {} b;   // inherits A with private access by default

void main()
{
    try
    {
       throw b;
    }
    catch( B )      // warning
    {
    }
}