Hi everyone,

I want to derive some exception classes from std::exception, which serve as bug-hunting devices with specific messages. But the screen output seems really awkward to me. An example:

Code:
class VectorException: public exception
{
 public:
 VectorException() : message( (string)"Vector: ") {};
 VectorException( string const& mess) : message( (string)"Vector: " + mess) {};
  
  virtual const char* what() const throw()
  {
    return message.c_str();
  }
  
 private:
  string const& message;
};

int main()
{
  try
    {
      v[ 3]; //throws the exception
  catch( exception& e)
    {
      cout<< "Exception running testVector: "<< e.what()<< endl;
    }
      
  return 0;
}
This result in the following screen output:

Code:
Exception running testVector: �d��P�ͷ�l�����d��P�ͷ
Might it be the string-member function 'c_str()' which causes the problem?