CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J´aide les personne en C/C++

JeanYvesYves
JeanYvesYves
Niveau 10
25 juin 2004 à 08:13:26

ta méthode printa(), étant une fonction qui renvoie la valeur d´un membre privé, dans la jargon, est communément appelée " accesseur" :)

techslash
techslash
Niveau 8
25 juin 2004 à 08:17:48

Si tout va bien, je ne devrais pas avoir autant de questions aujourd´hui ( quoique rien n´est sûr :) ) . J´aimerais bien commencer à sortir mon projet de la glace comme j´ai mentionné dans un message précédent.

Commence donc le débat visant à choisir entre OGL, DX et SDL... Je vais avoir du mal pour ça.

techslash
techslash
Niveau 8
25 juin 2004 à 08:18:52

accesseur et schéma, merci, c´est noté :p) .

JeanYvesYves
JeanYvesYves
Niveau 10
25 juin 2004 à 08:19:10

wow ! ! une derniere chose que je ramarque maintenant :

remplace :

MyClass operator+(MyClass s1, MyClass s2)

par

MyClass operator+(const MyClass& s1, const MyClass& s2)

En effet, la 1ere forme prend une COPIE de s1 et s2, donc ça appelle le constructeur par copie ( ou alors ça copie tous les champs si tu n´en a pas) pour s1 et s2 --> perte de temps.

Avec la 2e forme, tu travailles directement sur la classe originale ( sans copie) grace au &
donc c´est plus rapide !
le mot clé " const" est une sécurité : il veut dire " je te permet de travailler sur l´original, mais je ne te permets pas d´y modifier"
par contre, faut voir s´il ne va pas gueuler avec tes accesseur printa() ( si c´est le cas, il ne gueulerait pas avec friend et l´appel privé direct) mais au pire, tu enleves juste les " const" --> tu sais ce que tu fais :)
En tout, le passage par référence & est + que conseillé :)

techslash
techslash
Niveau 8
25 juin 2004 à 08:23:40

J´ai déjà modifié le programme pour éliminer les accesseurs et utiliser friend :) .

techslash
techslash
Niveau 8
25 juin 2004 à 08:25:28

Voilà qui est fait, le compilo ne gueule pas, merci pour la précision ( elle manque au cours de Casteyde... ou alors je suis passé à côté par accident).

Ce qui vient de me rappeller d´ailleurs que je dois aller relire la section sur les constructeurs de copie, j´ai oublié comment les faire :p) .

techslash
techslash
Niveau 8
25 juin 2004 à 08:28:15

Hmmm un constructeur tout ce qu´il y a de plus ordinaire avec une référence constante sur une même classe que celle " en cour" en tant que paramètre. C´est logique, je suis idiot :honte: .

techslash
techslash
Niveau 8
25 juin 2004 à 08:29:21

Heum... non c´est pas logique, pourquoi est-ce qu´il doit s´agir d´une référence ?

ex.:
chaine::chaine(const chaine &)
{
int i = 0; / / Compteur de caractères.
Taille = Source.Taille;
s = new char[Taille + 1]; / / Effectue l´allocation.
strcpy(s, Source.s); / / Recopie la chaîne de caractères source.
return;
}

Pourquoi le & dans le paramètre ?

techslash
techslash
Niveau 8
25 juin 2004 à 08:44:30

Hmmm prière de ne pas répondre à ma dernière question, l´ampoule vient de s´allumer ( sur le fait que la réponse est déjà ici :) ) . Temps d´aller dormir :honte: !

JeanYvesYves
JeanYvesYves
Niveau 10
25 juin 2004 à 09:09:11

ça vaut le coup d´essayer, une fois pour voir : de faire un constructeur par copie sans référence :
genre :

maclasse(maclasse c)
{

}

tu verras que ton pogramme ne sors jamais !
parce que dès que tu vas appeler le constructeur par copie, il va évaluer c. Or c est passé par copie, donc il va appeler le constructeur par copie. Et il y aura " maclasse c" dans ce nouveau constructeur, qui va encore appeler le constructeur par copie...

Donc en fait, si ça va s´arreter car il y aura débordement de pile --> erreur

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
28 juin 2004 à 00:41:14

Essaye plutot avec ce programme :

  1. include < stdio.h>

int main()
{
printf("Bonjour");

getchar();

return 0;
}

_[CONKER]_
_[CONKER]_
Niveau 10
28 juin 2004 à 00:43:32

mais non il demande comment compiler ^^
Son programme devrait très bien aller ^^
Clique sur " rebuild all" :)

JeanYvesYves
JeanYvesYves
Niveau 10
28 juin 2004 à 00:53:01

sur certains compilateurs, conio.h ne marche pas.
cependant, si ça compile : donc que tu obtiens le . o, alors tu dois pouvoir linker : fait le " rebuild all" et regarde si tu as des erreurs.
si tu en as, dis nous lesquelles
et dis nous si le programme simple proposé par [LoCkLeSs] marche si ce n´est pas le cas :)

iamrulz
iamrulz
Niveau 2
28 juin 2004 à 01:07:11

je compile ac rebuid all et il ne marque pas derreur..mais je ne sais tjs pas comment tester pr voir mon projet..et je ne comprend tjs pas non plus pourquoi il ce sauvegarde en . o

dsl si je ne comprend pas vite mais jai commencer a apprendre hier...

JeanYvesYves
JeanYvesYves
Niveau 10
28 juin 2004 à 01:09:22

regarde ailleurs dans ton projet s´il n´y a pas d´EXE.
Sinon, avec dev C++, en bas tu as les erreurs possibles, et entre autres des onglets :

clique sur l´onglet " linker" , tu dois avoir une erreur de link si tu as le . o et non l´exe.
dis moi l´erreur que tu as.

iamrulz
iamrulz
Niveau 2
28 juin 2004 à 01:18:21

eh bien quand je click sur link
au bout de lemplacement ou jai compiler mon projet cest ecrit no such file or directory et il reste tjs en . o

JeanYvesYves
JeanYvesYves
Niveau 10
28 juin 2004 à 01:26:06

donc tu n´as pas d´erreurs de compilation, mais une erreur de link.
As tu essayé le code proposé par [LoCkLeSs] ?
est ce que lui marche ?

si lui marche, et pas ton code avec " conio.h", je soupçonne que tu aies une lib a linker : essaie d´abord de faire marcher le code de Lockless.

iamrulz
iamrulz
Niveau 2
28 juin 2004 à 01:35:40

merci!! le code de lockless marche!!
mais pourrait tu mexpliquer pourquoi son cade marche et pas le mien...pourtant je lai prit ds un tutorial..

merci davance de vouloir mexpliquer pourquoi son code marche et pas celui que jai esseyer car cela va réellement maider pcq je suis debutant

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
28 juin 2004 à 01:39:44

Hum, je pense que c´est le fait que tu es utilisé conio.h, donc peut etre que le compilo ne le prend pas en compte.
Le tuto que tu as pris ne doit pas être trés récent donc essaye de faire le tuto de http://www.programmationworld.com je le trouve assez bien.

MathieuN7
MathieuN7
Niveau 10
28 juin 2004 à 01:42:44

Ah... conio.h
J´en ai eu des emmerdes avec ce header

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware