Wie verwende ich eine Klasse wstringstream variable?

Ich habe eine std::wstringstream dass ich als eine Art Puffer, in meiner Klasse, und es wird verwendet, indem ein guter Teil der Methoden in dieser Klasse. Jedoch, wenn ich versuche, so etwas zu tun:

#include <sstream>

class foo
{
  public:
    void methodA(int x, int y); //Uses mBufferStream
    void methodB(int x, int y); //Uses mBufferStream

  private:
    std::wstringstream mBufferStream;
};

Bekomme ich die folgende Fehlermeldung:

error C2248: "std::basic_ios<_Elem,_Traits>::basic_ios' : cannot access private member declared in class 'std::basic_ios<_Elem,_Traits>'

Dies ist nicht meine genaue Klasse offensichtlich, aber es ist das gleiche setup. Irgendwelche Gedanken, was ich vielleicht falsch mache? Ich bin mit Microsoft Visual Studio 2005.

[Bearbeiten] angezeigt wird, wählen Sie in der Methode Körper .cpp-Datei (als ein Beispiel von der Verwendung):

void foo::methodA(int x, int y)
{
  mBufferStream << "From " << x << " To " << y;
  externalfunction(mBufferStream.str());  //Prints to message service
  mBufferStream.str(L"");
}
  • Dein code kompiliert problemlos auf g++ 4.2 - funktioniert diese genauen code nicht kompilieren auf, deinen compiler? Es sieht gut aus.
  • Irgendein Beispiel, wie Ihr mit mBufferStream im Körper?
  • welche dieser drei Zeilen, die den Fehler verursacht?
  • Hrm, Wenn ich das wstringstream in der Klasse, in der die Protokollierung von Nachrichten, der Fehler geht Weg. Ich Frage mich, was würde diesen Fehler verursachen...
  • Wir müssen sehen, was der echte code, um Ihnen den richtigen Antworten.
InformationsquelleAutor Fry | 2010-07-20
Schreibe einen Kommentar