template: j'ai merdé, help siouplait [C/C++] - C++ - Programmation
Marsh Posté le 26-11-2002 à 13:19:59
MrX a écrit a écrit : return 0; system("PAUSE" ); |
j'ai pas la réponse a ta question, mais mettre un system apres le return ca va pas te servir a grand chose.
Marsh Posté le 26-11-2002 à 13:22:44
ca c po moi c le compileur ki mets lui meme d'office pour me garder la fenetre systeme ouverte aprés que le code soit executé
Marsh Posté le 26-11-2002 à 13:23:22
MrX a écrit a écrit : ca c po moi c le compileur ki mets lui meme d'office pour me garder la fenetre systeme ouverte aprés que le code soit executé |
dans ce sens la ? et ca marche ??
Marsh Posté le 26-11-2002 à 13:24:32
ben mon compilateur il compile et ca marche, j'utilise bloodshed dev-c++ 4.9
Marsh Posté le 26-11-2002 à 14:06:37
euh, en fait je vien de resoudre mon probleme en foutant le cout dans une fonction du template en gros :
#include <iostream>
#include <stdlib.h>
template <class a_cls> class divs
{
public:
a_cls vr;
a_cls div(a_cls x, a_cls y);
a_cls sous(a_cls x, a_cls y);
void render();
};
template <class a_cls> a_cls divs<a_cls>::div(a_cls x, a_cls y)
{
vr = x/y;
return vr;
}
template <class a_cls> a_cls divs<a_cls>::sous(a_cls x, a_cls y)
{
vr = x-y;
return vr;
}
template <class a_cls> void divs<a_cls>::render()
{
cout<<vr<<endl;
}
int main(int argc, char *argv[])
{
divs<double> a;
a.div(10.16516, 5.16512);
a.render();
system("PAUSE" );
}
mais bon ve tjs savoir comment on fais pour exploiter les les variables declarées par un template en dehors du template sinon j'ai pa fini s'il fo ke chaque operation que je ve faire sur mes variable fo ke je les foutes dans le templates....
Marsh Posté le 26-11-2002 à 14:35:25
L'operateur <<, où est il surchargé dans ta classe divs ?
De plus que voulais-tu qu'il affiche ? ta classe ne comporte aucun membre ? A quoi sert-elle ? il n'y a que des methodes qui pourraient etre des fonctions globales...
Marsh Posté le 26-11-2002 à 16:02:13
en premier, si tu pouvais utiliser plus l'anglais ca me faciliterai les choses packe en francais je pige pas grand chose a la programmation
"operateur << surchargé" c a dire ?
membre sait po ce que ca ve dire (en tout cas connais pas l'equivalent anglais) mais mon code c t juste pour testé comment marche les templates. ce ke je voulais faire c des operation simple avec different type de variable via mon code dans le template (genre division avec int, double, float) et aprés fo bien que j'affiche le resultat voir si ca a marché, d'ou le cout<<. Et quand j'ai voulu faire un cout<< d'une variable a (divs<int> a) me dit ke le type divs<int> il pe pa l'affiché. En bref apparament le données traitée par des templates sont inutilisable en dehors du template si je les prends sans aucune modification (ptet k'y faut faire un type casting particulier ??), alors voulais savoir qu'est ce que je doit faire pour rendre les données issue d'un template "propre" pour des manip exterieur au template
Marsh Posté le 26-11-2002 à 16:04:48
MrX a écrit a écrit : en premier, si tu pouvais utiliser plus l'anglais ca me faciliterai les choses packe en francais je pige pas grand chose a la programmation |
Ben va voir sur forum.hardware.com alors... Et sinon, tu peux toujours t'appliquer, packe lé truk ékri kom sa c lour...
Et sinon, "membre" en anglais on dirait "member" ou "attribute".
Marsh Posté le 26-11-2002 à 16:39:08
quoi c'est si moche que ca quand j'ecris ??
euh attirbute c'est un peu moins vague pour moi mais si t'a le temps tu peux me donner un petit exemple, que je soit sur de sujet (la programation parlée, j'ai du mal, me faut du code pour bien comprendre, mais bon deja l'anglais c'est plus simple)
Marsh Posté le 26-11-2002 à 16:45:38
tu sais ce que c'est un objet ? ben un attribut, c'est une variable membre de l'objet...
Code :
|
Marsh Posté le 26-11-2002 à 16:50:32
en gros c des variable utilisé par la class, alors qu'est qu'il me sort benb que j'ai pas de membre :
template <class a_cls> class divs
{
public:
a_cls vr; //c'est bien un membre ca didjou
a_cls div(a_cls x, a_cls y);
a_cls sous(a_cls x, a_cls y);
void render();
};
Marsh Posté le 27-11-2002 à 02:22:25
Code :
|
Sinon:
Code :
|
Marsh Posté le 27-11-2002 à 08:26:01
je pense qu'il voulait simplement ecrire
Code :
|
Marsh Posté le 27-11-2002 à 10:28:32
MrX a écrit a écrit : en gros c des variable utilisé par la class, alors qu'est qu'il me sort benb que j'ai pas de membre : template <class a_cls> class divs { public: a_cls vr; //c'est bien un membre ca didjou a_cls div(a_cls x, a_cls y); a_cls sous(a_cls x, a_cls y); void render(); }; |
Je suis desolée, je ne remmet nullement en cause ta virilité
Dans la premiere version que tu donnes :
Code :
|
Il n'y a pas pas de membres (your class hasn't any member)
Les methodes de cette classe pourraient donc etre des fonction globales. (This class' methods would better have been global functions)
La raison pour laquelle l'operateur << ne fonctionne pas dans ton premier exemple n'a rien a voir avec les templates, mais est lié a la surcharge de l'operateur << pour la classe divs. Mais cette classe n'ayant pas membres il est difficile de savoir comment l'implementer.
(The << operator does not work properly because it is not overloaded for the divs class. As this class has no members I could hardly propose any implementation for it.)
Marsh Posté le 27-11-2002 à 12:32:06
musaran & wpk> vala c'etait ca que je cherchait, merci =)
benb> mouahahaha, je ferai des programmes viriles la prochaine fois. C'est po la peine de tout me coller en anglais, mon probleme pour te donner un exemple, c'est que je comprends array, mais tableau m'a fallu le temps pour faire le lien, comme pour string que je comprends et chaine de charactéres.... Enfin cela je les comprends maintenant, mais quand par exemple tu me dis que << est surchargé, ben la je l'ai dans le slip. Si ca ve dire que le type que j'utilise aprés n'est pas supporté par le <<, un "it lacks a cast" m'aurait etait plus explicite
Marsh Posté le 27-11-2002 à 13:41:41
MrX a écrit a écrit : musaran & wpk> vala c'etait ca que je cherchait, merci =) benb> mouahahaha, je ferai des programmes viriles la prochaine fois. C'est po la peine de tout me coller en anglais, mon probleme pour te donner un exemple, c'est que je comprends array, mais tableau m'a fallu le temps pour faire le lien, comme pour string que je comprends et chaine de charactéres.... Enfin cela je les comprends maintenant, mais quand par exemple tu me dis que << est surchargé, ben la je l'ai dans le slip. Si ca ve dire que le type que j'utilise aprés n'est pas supporté par le <<, un "it lacks a cast" m'aurait etait plus explicite |
Mais justement ce n'est pas un "cast" qui manque! mais bien une surcharge (overload) de l'operateur...
Marsh Posté le 28-11-2002 à 00:08:33
MrX, tu as des problèmes avec le français ?
Bien fait !
Ça compensera les difficultés qu'on eu les innombrables francophones devant apprendre l'anglais en même temps que la programmation.
Marsh Posté le 29-11-2002 à 14:12:06
lol j'ai pa de probleme avec le francais, c ma langue maternelle, mais bon je parle plus ou moins 5 langue (3 bien, 2 au stade experimentale) dont l'anglais ce qui fait que j'ai pas eu de probleme pour apprendre le vb en anglais sur le net, et pis le c++ par la suite, mais quand quelqu'un veut me traduire du code en francais, je bogue.... c po ma faute j'ai po fait exprés, ayait pitié
Marsh Posté le 29-11-2002 à 14:13:24
benb> en bref ca ve dire que le << il me tire la gueule...
Marsh Posté le 29-11-2002 à 15:16:52
MrX a écrit a écrit : benb> en bref ca ve dire que le << il me tire la gueule... |
il n'a rien contre toi...
mais il ne connais pas ton type divs... tout simplement...
Marsh Posté le 29-11-2002 à 15:17:04
MrX a écrit a écrit : benb> en bref ca ve dire que le << il me tire la gueule... |
il n'a rien contre toi...
mais il ne connait pas ton type divs... tout simplement...
Marsh Posté le 26-11-2002 à 13:17:08
#include <iostream>
#include <stdlib.h>
template <class a_cls> class divs
{
public:
a_cls div(a_cls x, a_cls y);
a_cls sous(a_cls x, a_cls y);
};
template <class a_cls> a_cls divs<a_cls>::div(a_cls x, a_cls y)
{
return (x/y);
}
template <class a_cls> a_cls divs<a_cls>::sous(a_cls x, a_cls y)
{
return (x-y);
}
int main(int argc, char *argv[])
{
divs<double> a;
a.div(10, 5);
cout<<a;
return 0;
system("PAUSE" );
}
ben vala c le code ki tue pour essayer les templates mais la ou il ve plus compilé c pour le "cout<<a;" , me dit ke il connais pas le type de variable, alors comment je fais afficher mon resultat ? j'ai essayer "cout<<(float) a;" ve pa, "itoa(a, b, 10)", ve po non plus. En bref, comment je fais moi pour utiliser le resultat d'un template en dehors du template ??