begin process at 2012 05 29 08:42:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Compression, Split & Cryptage

 > 

help un example banale sur les template(c++)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

help un example banale sur les template(c++)

lundi 8 novembre 2010 à 21:48:31 | help un example banale sur les template(c++)

menouni67

Salut SVP j'arrive pas à comprendre l'erreur sur ce morceau de code (compilé en dev c++)

#include <iostream>
using namespace std;

template <class T>
T min(T a,T b){
return ((a<b) ? a: b);
}



int main()
{
int a,b;
cout<<"Entrer deux entiers :"<<endl;
cin>>a>>b;
cout<<min(a,b)<<endl;

system("pause");
return 0;
}


Merci...
mardi 9 novembre 2010 à 02:04:59 | Re : help un example banale sur les template(c++)

DeAtHCrAsH

Salut,

Google est ton ami!
Regarde ce site ca va surement t'éclairer :
[ Lien ]

Shell
mardi 9 novembre 2010 à 10:53:22 | Re : help un example banale sur les template(c++)

CptPingu

Administrateur CodeS-SourceS
- Évite les using namespace std, voir: [ Lien ]
- Entrer => Entrez :p
- Pas besoin de parenthèse dans le return de ton template min.

Quel est le problème ? C'est simple, lorsque tu utilises un template, c'est à dire quand tu l'appelles, il faut normalement préciser les arguments et les paramètres.
Si ta fonction template est:


template <typename T>
void toto(T pouet)
{
}


Alors il faut l'appeler comme ceci:


toto<int>(9);
toto<double>(9.0);
toto<std::string>("kikoo");



Il faut préciser le paramètre qui correspond à l'argument !

Il y a des cas où le paramètre est déduit par le compilateur, et des cas ou il ne l'est pas.
Ex:


toto<int>(9.0); // Cas non déduit
toto("kikoo"); // Cas déduit, le compilateur sait que c'est un toto<std::string>("kikoo");



Dans ton code, le problème venait du fait, qu'il ne savait pas si tu passais des int& ou des int.
Il faut donc lui préciser explicitement que tu veux passer des int.

Ton code devient:
Code C/C++ :
#include <iostream>

template <class T>
T min(T a,T b)
{
  return (a < b) ? a : b;
}

int main()
{
  int a,b;

  std::cout << "Entrez deux entiers: " << std::endl;
  std::cin >> a >> b;
  std::cout << min<int>(a,b) << std::endl;

  return 0;
}


________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
jeudi 18 novembre 2010 à 22:40:56 | Re : help un example banale sur les template(c++)

mustrhaz62

Salut,

Ton code est correct ,il y a juste un conflit de nom. La bibliothèque standard contient aussi une fonction min, donc donne une autre nom à ta fonction pour résoudre ce problème.
jeudi 18 novembre 2010 à 23:18:09 | Re : help un example banale sur les template(c++)

CptPingu

Administrateur CodeS-SourceS
@mustrhaz62: Non, ce n'est pas une solution. S'il veut appeler sa fonction min, il peut tout à fait le faire. Il suffit juste de ne pas utiliser using namespace std (et les conflits de namespace sont la raison pour laquelle on ne l'utilise pas, voir lien de mon précédent post).

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
vendredi 19 novembre 2010 à 04:02:07 | Re : help un example banale sur les template(c++)

menouni67

Merci pour vos réponses , problème résolu
vendredi 19 novembre 2010 à 13:08:07 | Re : help un example banale sur les template(c++)

mustrhaz62

CptPingu: Pour moi, les deux sont des solutions. Je ne vois pas en quoi ma solution est fausse. Bref, à chacun sa méthodologie de développement.


Cette discussion est classée dans : help, template, min, example, banale


Répondre à ce message

Sujets en rapport avec ce message

erreur de template pdt la compilation help [ par loicus ] voilaquand je compil mon programe j'ai cette erreur : d:\programes\programation\visualc++\vc98\include\math.h(514) : error C2894: templates cannot be HELP creation de dossier [ par asnow ] SALUT A TOUS Je voudrais savoir comment ouvrir est integrer des fichiers dans un dossier en C sous dev-C++.Avec cette commande CreateDirectory(nom,NUL help :( [ par asnow ] salutJ'ai besoin de votre savoir en C :)J'ai un fichier qui contient plusieur indiquations sur des peronnes (nom, tel, adresse etc).Mon probleme: comm help:agregation [ par sossolol ] salut...Bon ben voila je suis tout nouveau en C++ et j'aurais aimé avoir des exemples d'agrégation pour pouvoir m'en inspirer...Je vous remercie d'ava HELP !! opengl [ par Zouil ] Je cherche les headers de openglJ'ai telechargé Opengl95.exe mais il ne contient pas glut.h et gl.hEst ce quelqu'un pourrai m'aider a les trouver ??Me please help me [ par ifren ] j' ai un truc comme ca#define SERerr SER::__instance()->__errquelqu'un peut m'explique c'est quoi tous ca ..."->"soyant heureux faisant fortune Lsitview -> Help [ par Xentor609 ] Salut tout le monde,Je cherche a utiliser les "list view".Le probleme, c'est que je ne trouce aucun exemple sur le net.Les seuls exemple disponibles s compter et extraire des mots : I NEED HELP !!!!! [ par ben01n ] salut j'ai une variable "buf" qui contient une phrase saisie par l'utilisateurje voudrais compter le nombre de mots puis les extraires un par un pour HELP !! test pixel ds une image bmp [ par jujuesiea ] suis a la recherche d'un prog en C permettant de rechercher un pixel d'une certaine couleur ds une image et de stocker les coord de ce pixel, puis de Need help !!!! [ par krolanta ] Existe t il un equivalent de unistd.h sous windows.Si c non, comme je le craint, y aqq1 qui pe me dire quelles st les bibliothques qui utilisent les m


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales