Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Przeciążenie operatora przypisania

Ostatnio zmodyfikowano 2014-01-19 11:16
Autor Wiadomość
tqit71
Temat założony przez niniejszego użytkownika
Przeciążenie operatora przypisania
» 2014-01-18 23:59:34
Ostatnio próbuję napisać własną klasę obsługującą ułamki. Mam problem z operatorem przipisania. Moim celem była możliwość przypisania obiektowi klasy Ulamek wartości w następujący sposób:
C/C++
mojUlamek = "4/3";
Całość funkcji operatorowej:
C/C++
Ulamek Ulamek::operator =( string ulamek )
{
    int licznik = 0;
    int pozycja = 0;
    int koniec = 0;
    do
    {
        if( ulamek[ licznik ] == '/' )
        {
            pozycja = licznik;
            break;
        }
        else
             licznik++;
       
    }
    while( 1 );
   
    string licz, mian;
    licz.assign( ulamek, 0, pozycja );
    mian.assign( ulamek, pozycja + 1, ulamek.size() - pozycja );
    return Ulamek( atoi( licz.c_str() ), atoi( mian.c_str() ) );
}
W returnie wywołanie konstruktora Ulamek(int licznik, int mianownik).

Kompilator w odpowiedzi wypluwa:

conversion from 'const char [4]' to non-scalar type 'Ulamek' requested

Szczerze mówiąc nie mam pojęcia co z tym zrobić. Byłbym bardzo wdzięczny za rozjaśnienie sytuacji.

P-102507
Monika90
» 2014-01-19 11:16:23
conversion from 'const char [4]' to non-scalar type 'Ulamek' requested

Upewnij się, że masz #include <string> i zamiast string używaj std::string

Poza tym, muszę cię zmartwić, twój operator przypisania niczego nie przypisze.
P-102517
« 1 »
  Strona 1 z 1