Listing 4: Detecting use of a member function that should never be called

class T_object
{
  ...
  virtual bool IsLinkedIn( void )
  {
    assert( "IsLinkedIn called with bad object" == NULL );
    return false;
  }
};

class T_project : public T_object { ... };
class T_section : public T_object { ... };
class T_method  : public T_object
{
  ...
  virtual bool IsLinkedIn( void );
};
class T_case    : public T_object { ... };
class T_oper    : public T_object { ... };
class T_persistent : public T_object
{
  ...
  virtual bool IsLinkedIn( void );
};
class T_class   : public T_object
{
  ...
  virtual bool IsLinkedIn( void );
};
class T_shell   : public T_object { ... };
class T_alias   : public T_object { ... };
class T_attribute  : public T_object
{
  ...
  virtual bool IsLinkedIn( void );
};
/* End of File */