Problème solved ^^ Un clic malencontreux m´avait fait décocher, à l´ainsu de mon plein gré, " Multithreaded DLL" ^^ Désolé ! ![]()
question bête : comment cin fait-il pour avoir l´adresse des trucs qu´on lui passe :
quand je fait :
double truc;
cin > > truc;
avec les char[] ya pas de problème, mais avec les autre type je vois pas. surtout que je pensais que si je faisait :
advio& operator>>(double &)
c´est à ça que servait le & mais apparement non, donc je sais pas trop comment faire.
si quelqu´un sait, je serais content de l´apprendre.
merci d´avance.
int puiss(int a,int b)
{
int i;
int r=1;
for(i=0;i<b;i++)
{
r*=a;
}
return r;
}
ca vient de la lecons 9 du site de jyy ( apprentissage c++)
je me demandais a quoi cela ser d´ecrire
( int a,int b)?
ce sont els deux paramètres de la fonction, c´est là qu´on lui donne des valeurs dont on veut calculer la puissance de l´une.
pour le cin, ça marche, j´avais juste un problème dans le passage de l´argument.
par contre j´ai un autre problème, je voulais créer un objet générique console pour que l´utilisateur n´ai pas besoin de créer un objet pour l´utiliser, il nclut juste le header de ma lib et il fait :
console < < " bonjour";
mais bien sur, dans un projet avec plusieurs fichier j´ai un problème au link puice qu´il redéfinit l´objet quand il réinclut le fichier d´en tête.
j´ai cherché dans les iostream et consort comment est ce que cin et cout sont déclaré mais j´ai pas trouvé.
là encore merci bcp d´avance pour votre aide.
dnob700 : fais une forward declaration de type " extern" dans ton header, et la déclaration réelle de tes données dans un . cpp.
Du coup, tous les fichiers qui incluent ton . h savent que " quelque part" existe ton truc " console", et ça sera résolu au linkage.
Au passage, dans un monde parfait se voulant objet, on aurait tendance à faire un singleton pour ton bidule.
Dnob > " comment cin fait-il pour avoir l´adresse des trucs qu´on lui passe"
c´est une histoire de fonctions dites, de L-Value, typique du C++ :
exemple :
class truc
{
private :
int a;
public;
/ /...
int get_a();
};
int truc::get_a()
{
return a;
}
Ceci déclaré, je fais, dans un main :
int v = get_a();
jusque la, tout va bien !
Mais maintenant, disons que mon but est décrire dans a.
Solution C : une méthode
void set_a(int);
Solution C++, utilisant la L-Value :
je remplace :
int& get_a();
avec toujours la meme implémentation, j´ai juste ajouté le &.
et la, j´ai le droit d´écrire, dans le main :
get_a() = 5;
et ça copie le a ! !!
En effet, ça te renvoie une référence vers a ( implicitement un pointeur finalement ! ), et non pas une copie, du coup, si tu la modifie, ça modifie celui de a.
Alors tu vas me dire, c´est dangereux, comment faire si je veux que mon a ne soit qu´en lecture, mais que je veux une référence quand meme ?
-->
const int& get_a();
et pour le cin, c´est pareil, le prototype doit etre, me semble t il :
template < class T>
istream& operator>>(const T&)
Ce qui fait que ce qui est est modifié modifie ta variable du main aussi
Les L-Value fonctions permettent donc de faire :
fonction() = variable;
L-Value signifie " Left Value" car on les met a gauche du signe = ![]()
jour, ce matin
j´aimerais savoir comment mettre les accents, comme il ne fonctionne pas sous C++ ^_^
merci ![]()
faut faire les équivalences des caracteres ASCII haut niveau C et C++, tiens, si j´ai le temps, je ferai cela ![]()
" haut niveau", n´est pas le terme approprié, je voulais dire au dela des caracteres standard.
ok pas de probleme de tout façon je ne suis pas présser !
nan mais j´ai compris ^_^
je ferai une fonction :
char* accentdos(char*);
qui te permettra de faire :
cout < < accentdos("ça devrait être bon") < < endl;
ou
printf(accentdos("ça devrait être bon\n"));
ok
, je verais sur tes cours plus tard alors ![]()
e en fait pour mon probleme , int a et int b sont ecris dans les parentese pour dire a lordi que cette fonction sera destiné a ces 2 variables?
Non ça veut dire que la fonction prend comme argument deux variables contenant un entier, et qu´elle utilisera la valeur de la première sous le nom ( dans une variable locale à la fonction, et pas celle de départ) a et b.
Après, si tu veux que la variable modifie les variables dont elle va se servir, reporte toi à des cours sur les pointeurs...Mais vu que tu n´as pas encore compris la notion d´argument de fonction, repars déjà sur le chapitre des fonctions.
MORE EFFECTIVE C++ de je sais plus trop qui :
est ce que quelqu´un a lut ce livre ?
parceque , j´ai l´impression que dans le monde de
la prog c++ , il y a ceux qui l´ont lu , et ceux qui l´ont pas lu , et qu´il est considéré ( j´avais lu l´interview d´un drh ) comme une " référence" , pour juger de la qualité d´un programmeur . ..
Alors j´aurais voulu savoir ce qu´apprenait le livre , si c´était vraiment utile , concret , et surtout à quel niveau pensez vous qu´il faille le lire ?
je sais que la notion de " niveau" en c++ est subjective , vu que personne n´apprend les mêmes choses à la même vitesse , mais bon . .. avoir lu quelques bouquins sur le c++ ( disons le c++ pour les nuls et les tuto des C.Casteyde sur le net ) est-ce suffisant ?
merci pour votre avis ![]()
c´est un EXCELLENT livre ! normal que ce soit une reference ( Scott Mayers au passage, l´auteur). Je le recommande fortement, mais seulement a ceux ayant deja une bonne comprehension du langage et des concepts du C++.
Il est plein de petites astuces sur des finesses, ou de conseils pour aborder certains problemes bien specifiques ; bref des " outils" qui servent au quotidien pour ameliorer sa facon de coder.
jamais lu pour le moment . . ![]()
Rikkuman4 > j´ai fini la fonction pour les accents, regarde donc le nouveau topic ![]()
C´est sympa ca , JYY , je crois que ca embete tout le monde en fait
Sinon , pour en revenir aux livres , j´ai commandé sur amazon ( dailleurs , c´est d´un leeeent à venir ) un bouquin appelé " data structures for game programmers " de Ron Perton , mais j´avoue que je l´ai commandé surtout parcequ´il propose des exemples de jeu en c++/SDL ,
parceque en fait , la seule chose que je connais sur les Datas structures , c´est que ca signifie quelque chose comme " structure de données " , mais apres ca 0o . ..
Bon ( apres l´avoir commande tant qu´a faire , j´ai essaye de me documenter un peu dessus ) , sur gamedev.net ils le trouvent bien , mais j´ai toujours pas compris ce qu´il y avait dedans . ..
En plus , le truc fait 1.000 pages je crois , et il est en Anglais . .. Est-ce que quelqu´un la lut , parceque je commence à f34r . ..