verketten const char * strings

Ich bin verwirrt über char * und const char *. In meinem Beispiel bin ich mir nicht sicher, wie Sie Sie zusammen. Ich habe mehrere const char * strings möchte ich zu verketten, um eine endgültige const char * string.

struct MyException : public std::exception
{
  const char *source;
  int number;
  const char *cause;

  MyException(const char *s, int n)
      : source(s), number(n) {}
  MyException(const char *s, const char *c)
      : source(s), number(0), cause(c) {}

  const char *what() const throw()
  {
    if (number != 0) {
      char buffer[1024];
      //why does this not work?
      cause = strerror_r(number, buffer, 1024);
    }

    //how to concatenate the strings?
    return source + ": " + cause;
  }
};
  • Warum die Arbeit mit cstrings? Sind Sie beschränkt, für Sie? Ich würde Ihnen empfehlen, std::string.
  • Ist das eine übung? Wenn nicht könnte man machen das Leben einfacher mit std::strings ??
  • Dito, dito. Benutzen Sie std::string. viel bessere Lösung für die meisten Probleme mit cstrings.
  • es soll nicht auf ... beim werfen, nicht diring Konstruktion. alle die <stdexcept> Klassen, abgeleitet von std::exception zu verwenden std::string!
InformationsquelleAutor multiholle | 2012-07-26
Schreibe einen Kommentar