|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2005
Messaggi: 3577
|
[C++][OVERLOADING OPERATORE <<]
ragazzi vi chiedo aiuto è tutto il giorno che sto impallato a sto problema stupido :|
come da titolo, devo eseguire l'overloading dell'operatore << bene, ho una classe matrix.h e nel mezzo ci inserisco Codice:
std::ostream& operator<< (std::ostream& s, const matrixT& p){ for(unsigned int i=0, i<(p.colonne), i++){ for(unsigned int j=0; i<(p.righe), j++){ s << p.**matrice << endl; return s; }}} Codice:
#include "matrixT.h" #include <iostream> #include <ostream> using namespace std; int main() { cout << "Prova costruttore di default\n"; matrixT<int> A(3, 5); cout<<"bello"; cout << A; return 0; } in pratica matrix è una matrice e con l'overloading di << dovrei stamparla per intero, ma mi da in compilazione il seguente errore: $ g++ main.cpp; main.cpp: In function 'int main()': main.cpp:13: error: no match for 'operator<<' in 'std::cout << A' c:\programmi\mingw-g++4.3.0\bin\../lib/gcc/mingw32/4.3.0/include/c++/ostream:112: note: candidates are: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>& (*)(std::basic_ost vi prego aiutatemi, ho provato a cambiare la funzione duecente miliardi di volte in qualsiasi modo, mi affido a voi!
__________________
L'EMPOLI NON SI DISCUTE... SI AMA ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
L'overloading dove lo inserisci ? E' membro della classe ?
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2005
Messaggi: 3577
|
sì esatto
__________________
L'EMPOLI NON SI DISCUTE... SI AMA ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non puoi fare l'overloading dell'operatore << con una funzione membro, perché la funzione membro sottointende che this sia il primo parametro dell'operatore. In questo caso invece è il secondo parametro. Quindi devi fare una funzione esterna alla classe e dichiararla friend all'interno della classe se vuoi utilizzare la sua struttura interna.
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:31.