Przeladowanie operatora>>. Błąd w VC++ w GCC ok.

0

Witam!

#include "stdafx.h"
#include <iostream>

class X {
//private:
public:
        int a;
        std::string s;
public:
        X(int A = 0, std::string S = 0);
        friend std::ostream& operator<< (std::ostream& Print, X& wzor);
        friend std::istream& operator>> (std::istream& Scan, X& wzor);
};
 X::X(int A, std::string S) : a(A), s(S) {
 }
 std::ostream& operator<< (std::ostream& Print, X& wzor) {
         Print<<wzor.a;
         Print<<wzor.s;
         return Print;
 }
 std::istream& operator>> (std::istream& Scan, X& wzor) {
         Scan>>wzor.a;
         Scan>>wzor.s;
         return Scan;
 }


 int main() {
        X a(12, "Pierwszy");
        

        std::cout<<a;
        std::cout<<"Wczytaj a.a i a.s\n";
        std::cin>>a;
        
}

Program kompiluje się w GCC bez problemu a w VC++ 2008EE następując błąd:

1>        while trying to match the argument list '(std::istream, std::string)'
1>Build log was saved at "file://c:\Documents and Settings\Admin\Pulpit\pierwszy\pierwszy\Debug\BuildLog.htm"
1>pierwszy - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Będę wdzięczny za pomoc przy rozwiązaniu tego problemu.
Pozdrawiam i dziękuję.

0

Proponuję czytać (i wklejać) całość błędu, wraz z miejscem jego zgłaszania – a nie tylko ostatnią linijkę, z której nic nie wynika.

Dodaj

#include <string>
0

Dla kosmetyki dodałbym jeszcze const tam gdzie może się przydać, np.

friend std::ostream& operator<< (std::ostream& Print, const X& wzor);

1 użytkowników online, w tym zalogowanych: 0, gości: 1