|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2125
|
[C++] STL sort - array di oggetti
Allora ecco cosa ho fatto:
Codice:
//card.h
#ifndef CARD_H
#define CARD_H
using namespace std;
class Card {
private:
int suit;
int val;
int taken;
public:
Card();
int getSuit()const;
int getVal()const;
...
bool operator<(const Card&);
};
#endif
//card.cpp
bool Card::operator<(const Card& a) {
return getVal() < a.getVal();
}
Codice:
#include <algorithm>
...
void Combinator::Comb5(Card i[]){
...
case 5:
sort(i,i+4);
break;
}
}
Codice:
C:/Programmi/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/bits/stl_algo.h: In function `const _Tp& std::__median(const _Tp&, const _Tp&, const _Tp&) [with _Tp = Card]': C:/Programmi/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/bits/stl_algo.h:2482: instantiated from `void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = Card*, _Size = int]' C:/Programmi/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/bits/stl_algo.h:2553: instantiated from `void std::sort(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = Card*]' combinator.cpp:56: instantiated from here C:/Programmi/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/bits/stl_algo.h:90: error: passing `const Card' as `this' argument of `bool Card::operator<(const Card&)' discards qualifiers C:/Programmi/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/bits/stl_algo.h:91: error: passing `const Card' as `this' argument of `bool Card::operator<(const Card&)' discards qualifiers C:/Programmi/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/bits/stl_algo.h:93: error: passing `const Card' as `this' argument of `bool Card::operator<(const Card&)' discards qualifiers C:/Programmi/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/bits/stl_algo.h:97: error: passing `const Card' as `this' argument of `bool Card::operator<(const Card&)' discards qualifiers C:/Programmi/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/bits/stl_algo.h:99: error: passing `const Card' as `this' argument of `bool Card::operator<(const Card&)' discards qualifiers
__________________
Un wormhole (buco di tarlo, in italiano), detto anche Ponte di Einstein-Rosen, è una ipotetica caratteristica topologica dello spaziotempo che è essenzialmente una "scorciatoia" da un punto dell'universo a un altro, che permetterebbe di viaggiare tra di essi più velocemente di quanto impiegherebbe la luce a percorrere la distanza attraverso lo spazio normale. Go to a Wormhole |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Prova a dichiarare anche l'operatore < come const:
Codice:
bool operator<(const Card&) const; |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2125
|
ok...
![]() ora spiegami il ragionamento
__________________
Un wormhole (buco di tarlo, in italiano), detto anche Ponte di Einstein-Rosen, è una ipotetica caratteristica topologica dello spaziotempo che è essenzialmente una "scorciatoia" da un punto dell'universo a un altro, che permetterebbe di viaggiare tra di essi più velocemente di quanto impiegherebbe la luce a percorrere la distanza attraverso lo spazio normale. Go to a Wormhole |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2004
Messaggi: 1685
|
con oggetti costanti non puoi invocare metodi non costanti... quindi è buona norma dichiarare "const" metodi che non recano modifiche all'oggetto di invocazione altrimenti ti precludi la possibilità di invocarli con oggetti costanti
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2125
|
denghiu
__________________
Un wormhole (buco di tarlo, in italiano), detto anche Ponte di Einstein-Rosen, è una ipotetica caratteristica topologica dello spaziotempo che è essenzialmente una "scorciatoia" da un punto dell'universo a un altro, che permetterebbe di viaggiare tra di essi più velocemente di quanto impiegherebbe la luce a percorrere la distanza attraverso lo spazio normale. Go to a Wormhole |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:00.




















