[C++]Funkcja zaprzyjaźniona w innym pliku
Ostatnio zmodyfikowano 2015-11-25 15:41
Roofy5 Temat założony przez niniejszego użytkownika |
[C++]Funkcja zaprzyjaźniona w innym pliku » 2015-11-23 22:34:58 Hej, Mam problem z funkcją zaprzyjaźnioną. Tworzę klasę Wektor, w której chcę przeciążyć operator << aby wypisywać pozycje X i Y wektora. Funkcja musi być przyjacielem klasy (lewym operandem jest strumień ostream). Robię to tak: #pragma once
class CWektor { private: double * coord; public: CWektor(); CWektor( double x, double y ); CWektor( const CWektor & ob ); ~CWektor(); friend ostream & operator <<( ostream & str, const CWektor & ob ); };
#include "CWektor.h" #include <iostream>
using namespace std;
CWektor::CWektor() { ... } CWektor::CWektor( double x, double y ) { ... } CWektor::CWektor( const CWektor & ob ) { ... } CWektor::~CWektor() { ... }
ostream & operator <<( ostream & str, const CWektor & ob ) { str << "X: " << ob.coord[ 0 ] << " Y: " << ob.coord[ 1 ] << endl; return str; }
W tym drugim pliku na końcu chcę dodać tą właśnie funkcję, ale kompilator zgłasza błąd, iż składnik ob.coord jest prywatny - nie działa przyjaźń. Teraz moje pytanie - gdzie powinienem umieścić definicję tej funkcji? Pozdrawiam Michał |
|
michal11 |
» 2015-11-23 23:06:03 Jaki kompilator (ew. IDE) ? |
|
carlosmay |
» 2015-11-23 23:09:43 Przenieś do pliku CWektor.h. |
|
Roofy5 Temat założony przez niniejszego użytkownika |
» 2015-11-25 15:41:23 Visual Studio 2013
Problem rozwiązany - zapomniałem dołączyć iostream i dodatkowo dopisać std::ostream& :P |
|
« 1 » |