Techniques de l'informatique

Forum des anciens du programme de techniques de l'informatique au Cégep de Sherbrooke
It is currently Fri Jan 09, 2009 9:21 am

All times are UTC - 4 hours


Featured Links: Caribbean Medical Schools @ Entrance to Medical Schools @ Free phpBB3 Forum @ eTripTips - Your Travel Source


Post new topic Reply to topic  [ 5 posts ] 
Author Message
 Post subject: [C++] Méthode trop constante
PostPosted: Fri Nov 16, 2007 9:45 am 
Offline
Elite Haxxor of Doom and Chaos

Joined: Mon Jan 30, 2006 12:05 am
Posts: 1374
Location: Windsor (Qc)
J'ai une méthode qui se veut constante, par exemple.

template <class K, class V>
Iterator<K, V> Fonction<K, V>::find(const K &k) const

Cette méthode devrait être constante parce que find() ne change pas la classe, mais ça me fait toujours un erreur quand je fais:

Iterator<K, V> it;
it.f = this; //error C2440: '=' : cannot convert from 'const Fonction<K,V> *const ' to 'Fonction<K,V> *'

Je sais que je ne peux pas changer this parce qu'il est constant, mais je veux juste prendre sa valeur et ça fait un erreur... J'ai lu de quoi sur const_cast<> mais j'ai aussi lu que c'était batard et que ça devrait pas être utlisé, donc, eh, quelqu'un peut m'expliquer comment faire ou juste m'expliquer pourquoi je ne peux pas me servir de la valeur de this? Merci.

_________________
Beware of the dog.
He's very sarcastic.


Top
 Profile E-mail  
 
 Post subject:
PostPosted: Fri Nov 16, 2007 11:54 am 
Offline
Asshole extraordinaire
User avatar

Joined: Fri Jan 27, 2006 7:52 pm
Posts: 3689
Location: Sherbrooke, QC
Peux-tu poster plus que deux lignes de codes SVP, ca aiderait a comprendre ce que tu essaies de faire et pourquoi ca ne marche pas (en particulier c'est quoi it.f).

Sinon tu pourrais essayer const_cast<> mais tant qu'a moi ce serait plus un hack rapide qu'autre chose.

_________________
ImageAREER SUIImageIDE - ATTEMPTED SUIImageIDE
Image
I want you to think of me as a whole. A whole, with a 'W', Brian.


Top
 Profile E-mail  
 
 Post subject:
PostPosted: Fri Nov 16, 2007 12:20 pm 
Offline
Elite Haxxor of Doom and Chaos

Joined: Mon Jan 30, 2006 12:05 am
Posts: 1374
Location: Windsor (Qc)
Ouin, j'ai trouvé mon erreur après pas mal de gossage.

class Iterator
{
friend class Fonction<K, V>;
protected:
const Fonction<K, V>* f;
Node<K, V> *p;
stack<Node<K, V>*> path;
Node<K, V>* node() const {return p;};
bool end() const {return (p->key == f->max()) ? true : false;};
public:
...
}

J'ai juste ajouté le const en rouge et tout va bien. C'est logique, mon itérataur d'arbre ne va pas aller changer mon arbre, mais c'est possible que le pointeur soit changé un jour par la classe Fonction. Tk, en gros, il fallait mettre un const à la bonne place. Merci Francis.

_________________
Beware of the dog.
He's very sarcastic.


Top
 Profile E-mail  
 
 Post subject:
PostPosted: Fri Nov 16, 2007 12:42 pm 
Offline
Asshole extraordinaire
User avatar

Joined: Fri Jan 27, 2006 7:52 pm
Posts: 3689
Location: Sherbrooke, QC
Les "const" avec les pointeurs c'est assez fourrant...

const int* variable;
int* const variable;
const int* const variable;

_________________
ImageAREER SUIImageIDE - ATTEMPTED SUIImageIDE
Image
I want you to think of me as a whole. A whole, with a 'W', Brian.


Top
 Profile E-mail  
 
 Post subject:
PostPosted: Fri Nov 16, 2007 7:06 pm 
Offline
Elite Haxxor of Doom and Chaos

Joined: Mon Jan 30, 2006 12:05 am
Posts: 1374
Location: Windsor (Qc)
QFT

J'ai regardé les notes de cours de Jean Goulet pour voir et on peux effectivement mettre des const un peu partout selon la constante qu'on veut. On peux vraiment tout controler en c++. Jen apprends à tous les jours :)

_________________
Beware of the dog.
He's very sarcastic.


Top
 Profile E-mail  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC - 4 hours


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Credit Counseling | Internet Advertising | Guitar Lessons | Looking for Credit Cards? | Debt Consolidation

Hosted by Freeforum.ca, get your free forum now! TOS | Support Forums | Report a violation
Guaranteed Entrance to Medical Schools - eTripTips - Your Travel Source
Site Meter
MultiForums powered by echoPHP phpBB MultiForums