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

Destruktor klasy

Ostatnio zmodyfikowano 2017-05-21 21:23
Autor Wiadomość
CTRL85
Temat założony przez niniejszego użytkownika
» 2017-05-21 20:56:47
Czemu taki konstruktor nie przechodzi?

C/C++
WIELOMIAN( WIELOMIAN & w ) {
    degree = w.degree;
   
    tab = new int[ degree + 1 ];
   
    for( int i = 0; i < degree + 1; i++ )
         tab[ i ] = w.tab[ i ];
   
}


WIELOMIAN.cpp: In member function 'WIELOMIAN WIELOMIAN::operator<<(int)':
WIELOMIAN.cpp:698: error: no matching function for call to 'WIELOMIAN::WIELOMIAN(WIELOMIAN)'
WIELOMIAN.cpp:44: note: candidates are: WIELOMIAN::WIELOMIAN(WIELOMIAN&)
WIELOMIAN.cpp:34: note:                 WIELOMIAN::WIELOMIAN(int*, int, int)
WIELOMIAN.cpp:29: note:                 WIELOMIAN::WIELOMIAN()
WIELOMIAN.cpp:10: note:                 WIELOMIAN::WIELOMIAN(int, ...)
WIELOMIAN.cpp:698: error:   initializing argument 1 of 'WIELOMIAN& WIELOMIAN::operator=(WIELOMIAN)'
WIELOMIAN.cpp: In member function 'WIELOMIAN WIELOMIAN::operator>>(int)':
WIELOMIAN.cpp:705: error: no matching function for call to 'WIELOMIAN::WIELOMIAN(WIELOMIAN)'
WIELOMIAN.cpp:44: note: candidates are: WIELOMIAN::WIELOMIAN(WIELOMIAN&)
WIELOMIAN.cpp:34: note:                 WIELOMIAN::WIELOMIAN(int*, int, int)
WIELOMIAN.cpp:29: note:                 WIELOMIAN::WIELOMIAN()
WIELOMIAN.cpp:10: note:                 WIELOMIAN::WIELOMIAN(int, ...)
WIELOMIAN.cpp: In member function 'WIELOMIAN& WIELOMIAN::operator<<=(int)':
WIELOMIAN.cpp:732: warning: reference to local variable 'res' returned
WIELOMIAN.cpp:739: error: no matching function for call to 'WIELOMIAN::WIELOMIAN(WIELOMIAN)'
WIELOMIAN.cpp:44: note: candidates are: WIELOMIAN::WIELOMIAN(WIELOMIAN&)
WIELOMIAN.cpp:34: note:                 WIELOMIAN::WIELOMIAN(int*, int, int)
WIELOMIAN.cpp:29: note:                 WIELOMIAN::WIELOMIAN()
WIELOMIAN.cpp:10: note:                 WIELOMIAN::WIELOMIAN(int, ...)
WIELOMIAN.cpp:739: error:   initializing argument 1 of 'WIELOMIAN& WIELOMIAN::operator=(WIELOMIAN)'
WIELOMIAN.cpp: In member function 'WIELOMIAN& WIELOMIAN::operator>>=(int)':
WIELOMIAN.cpp:749: error: no matching function for call to 'WIELOMIAN::WIELOMIAN(WIELOMIAN)'
WIELOMIAN.cpp:44: note: candidates are: WIELOMIAN::WIELOMIAN(WIELOMIAN&)
WIELOMIAN.cpp:34: note:                 WIELOMIAN::WIELOMIAN(int*, int, int)
WIELOMIAN.cpp:29: note:                 WIELOMIAN::WIELOMIAN()
WIELOMIAN.cpp:10: note:                 WIELOMIAN::WIELOMIAN(int, ...)
WIELOMIAN.cpp: In member function 'WIELOMIAN WIELOMIAN::operator++(int)':
WIELOMIAN.cpp:789: error: no matching function for call to 'WIELOMIAN::WIELOMIAN(WIELOMIAN)'
WIELOMIAN.cpp:44: note: candidates are: WIELOMIAN::WIELOMIAN(WIELOMIAN&)
WIELOMIAN.cpp:34: note:                 WIELOMIAN::WIELOMIAN(int*, int, int)
WIELOMIAN.cpp:29: note:                 WIELOMIAN::WIELOMIAN()
WIELOMIAN.cpp:10: note:                 WIELOMIAN::WIELOMIAN(int, ...)
WIELOMIAN.cpp: In member function 'WIELOMIAN WIELOMIAN::operator--(int)':
WIELOMIAN.cpp:815: error: no matching function for call to 'WIELOMIAN::WIELOMIAN(WIELOMIAN)'
WIELOMIAN.cpp:44: note: candidates are: WIELOMIAN::WIELOMIAN(WIELOMIAN&)
WIELOMIAN.cpp:34: note:                 WIELOMIAN::WIELOMIAN(int*, int, int)
WIELOMIAN.cpp:29: note:                 WIELOMIAN::WIELOMIAN()
WIELOMIAN.cpp:10: note:                 WIELOMIAN::WIELOMIAN(int, ...)
main.cpp: In function 'int main()':
main.cpp:48: error: no matching function for call to 'WIELOMIAN::WIELOMIAN(WIELOMIAN)'
WIELOMIAN.cpp:44: note: candidates are: WIELOMIAN::WIELOMIAN(WIELOMIAN&)
WIELOMIAN.cpp:34: note:                 WIELOMIAN::WIELOMIAN(int*, int, int)
WIELOMIAN.cpp:29: note:                 WIELOMIAN::WIELOMIAN()
WIELOMIAN.cpp:10: note:                 WIELOMIAN::WIELOMIAN(int, ...)
main.cpp:48: error:   initializing argument 1 of 'WIELOMIAN& WIELOMIAN::operator=(WIELOMIAN)'
main.cpp:49: error: no matching function for call to 'WIELOMIAN::WIELOMIAN(WIELOMIAN)'
WIELOMIAN.cpp:44: note: candidates are: WIELOMIAN::WIELOMIAN(WIELOMIAN&)
WIELOMIAN.cpp:34: note:                 WIELOMIAN::WIELOMIAN(int*, int, int)
WIELOMIAN.cpp:29: note:                 WIELOMIAN::WIELOMIAN()
WIELOMIAN.cpp:10: note:                 WIELOMIAN::WIELOMIAN(int, ...)
main.cpp:49: error:   initializing argument 1 of 'WIELOMIAN& WIELOMIAN::operator=(WIELOMIAN)'

Numery linii mogą być złe, bo wrzucałem już sporo zmieniony kod.
P-161392
michal11
» 2017-05-21 21:23:23
Prawdopodobnie próbujesz gdzieś wywoływać te funkcje z obiektami tymczasowymi a takie nie mogą być przekazane do funkcji która oczekuje referencji, albo zrobisz konstruktor przenoszący albo kopiujący z const referencją.
P-161395
1 « 2 »
Poprzednia strona Strona 2 z 2