Betreiber Probleme mit cout

Ich habe ein einfaches Paket Klasse, die überlastet ist, so kann ich die Ausgabe Paket Daten einfach mit cout << Paketname. Ich habe auch zwei Datentypen, der name ist ein string und Versandkosten mit ein Doppelbett.

protected:
    string name;
    string address;
    double weight;
    double shippingcost;

ostream &operator<<( ostream &output, const Package &package )
{
    output << "Package Information ---------------";
    output << "Recipient: " << package.name << endl;
    output << "Shipping Cost (including any applicable fees): " << package.shippingcost;

Das problem mit der 4. Zeile (output << "Empfänger:...). Ich erhalte die Fehlermeldung "kein operator "<<" entspricht diesen Operanden". Jedoch, die Linie 5 ist in Ordnung.

Ich vermute, dies hat zu tun mit dem Datentyp einen string für den Namen des Pakets. Irgendwelche Ideen?

sind Sie mit std::string oder einige andere string-Bibliothek?
Mit string.h #include <string.h> Es ist sowohl in meinem .h und .cpp-Datei, die für diese Klasse. Auch using namespace std ist (obwohl, dass sollte klar sein, durch die anderen Linien der Arbeit).
Verwenden <string> - <string.h> ist nicht-standard und kann tun komisches Zeug. Gleiches gilt für <iostream> etc.
Haben Sie versucht, einschließlich #include <string> statt ?
Ich denke, dass string.h ist standard. Es ist jedoch nicht das .h-version der Zeichenfolge, aber der .h-version cstring, kompatibel zu sein mit C.

InformationsquelleAutor BSchlinker | 2010-04-29

Schreibe einen Kommentar