Problem z wyświetleniem pola struktury przez funkcję klasy !

0

Problem opisany w komentarzu ;)

#include <iostream>
#include <string.h>

using namespace std;

struct struktura
{
    string napis;
};

class klasa
{
    public:
        void WYPELNIJ(struktura &STRUCT);
};

void klasa::WYPELNIJ(struktura &STR)
{
    STR.napis = "napis";

    cout<<STR.napis<<'\n';  // Dlaczego nie mogę wyświetlić w VISUAL STUDIO 2010 
                    // pola struktury typu string. Program podkreśla mi na czerwono opretor wyścia <<
                        // dodam, że inne kompilatory nie wyświetlają mi takiego błędu.
                                // Pozdrawiam i czekam na pomoc.
}

int main(void)
{
    struktura STR;
    klasa cls;

    cls.WYPELNIJ(STR);

    cin.ignore();
    getchar();

    return 0;
}
1

jaki komunikat ci wyświetla? string.h zamień na string.

0
 1>c:\users\radosław\documents\visual studio 2010\projects\próba\próba\kod.cpp(24): error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)
1>          c:\program files\microsoft visual studio 10.0\vc\include\ostream(679): could be 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)'
0

Działa zmieniłem bibliotekę na string jak napisałeś i lekancko kompiluje :D JESTEM HAPPY

0
#include <iostream>
#include <string>
using namespace std;
struct struktura{
        string napis;
};
class klasa{
        public:
                void WYPELNIJ(struktura &STRUCT);
};
void klasa::WYPELNIJ(struktura &STR)
{
        STR.napis = "napis";
        cout<<STR.napis<<'\n';
}
int main(){
        struktura STR;
        klasa cls;
        cls.WYPELNIJ(STR);
        return 0;
}

To się kompiluję, ale np. dużymi literami zapisuję się instrukcje preprocesora i wg. dużo by mówić..

0

nagłówek <string.h> zawiera to samo co <cstring> z tą różnicą że ten pierwszy udostępnia wszystko w globalnej przestrzeni nazw, a drugi w std::.
zaś nagłówek <string> zawiera zupełnie co innego.

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