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

Passage au C++

hadrianus
hadrianus
Niveau 7
01 février 2009 à 20:18:52

Bonjour,

Je programme depuis 2 ans en C des petits jeux 2D , et j'aimerais savoir si il y a une utilité à passer au C++ (surtout pour la POO)pour faire des jeux ? Est ce plus facile avec la POO ?

Shakaan
Shakaan
Niveau 10
01 février 2009 à 20:34:24

disons que la POO peut servir, quoi, elle a ses avantages.. Après c'est assez hardcore, en C++ :peur: plus qu'en java, en tout cas.

hadrianus
hadrianus
Niveau 7
01 février 2009 à 20:56:58

C'est plus dur en somme ? Car je cherche plus les avantages que les inconvéniant , je compte faire des jeux de plus en plus gros donc je me demandais si la POO pourrait m'aider et donc le C++.

Aldebran
Aldebran
Niveau 10
01 février 2009 à 21:48:14

La couche objet de C++ est très utile, surtout pour des gros projets avec plusieurs personnes qui travaillent dessus : ça permet de mieux s'y retrouver et c'est plus simple à manier une fois qu'on a créé les classes qu'on veut utiliser.
Quand tu fabriques tes classes, c'est pas forcément évident. Par contre, quand tu utilises des classes toutes faites que tu télécharges sur internet, ça rend la programmation beaucoup plus simple.

Par exemple, si on prend la classe standard string qui permet de représenter une chaîne de caractère : en C, tu es obligé de manipuler ta chaine de caractères comme un tableau de caractères, et tu utilise les fonctions strcmp, strcat, strlen, etc. pour manipuler ta chaine. Alors qu'en C++, tu peux faire des trucs comme ça :

string mot("toto");
int lng = mot.length(); //renvoie la longueur du mot "toto"
mot = mot + " chante";
if (mot == "toto chante") return true;

Alors qu'en C, par exemple on peut pas faire une comparaison de chaine de caractères avec l'opérateur ==, on peut pas ajouter des mots avec +, mais il y a aussi des fonctions erase, insert, find, etc. qui sont beaucoup plus faciles à utiliser que les fonctions du C.

godrik
godrik
Niveau 30
01 février 2009 à 22:44:57

Potentiellement la POO rends la programmation plus simple car plus modulaire. Mais aussi une reutilisation du code plus importante et des expressions plus courtes.

Apres, ce n'est pas magique. On pourrait voir le C++ comme une surcouche au C.

hadrianus
hadrianus
Niveau 7
02 février 2009 à 18:30:02

Merci à vous pour vos réponses qui m'ont bien éclairer :)

hadrianus
hadrianus
Niveau 7
04 février 2009 à 13:28:57

Je reviens par ici car j'ai une question.J'ai commencer à apprendre le C++, je suis au référence et je ne comprend pas bien l'utilité de celle ci puisque qu'on peut encore utiliser les pointeurs.... :(.Quelqu'un pourrait m'éclairer ?

isukthar
isukthar
Niveau 10
04 février 2009 à 14:34:37

Tu parles des types référence en C++ managé?

godrik
godrik
Niveau 30
04 février 2009 à 17:09:43

non, je pense qu'il parle des references du C++

les references en C++ sont un peu etrange. Il n'y a pas vraiment de cas ou tu ne peux pas t'en passer
cependant c'est assez pratique simplifier certaines ecritures.
Ca permet de passer un objet "par adresse", sans avoir a utiliser la notation *. Ce qui a a un mon sens principalement un interet. L'utilisation des references constantes.

void toto (const unobjet& o) {o.setValue(14);}
Cette fonction ne fonctionnera pas, l'objet est passe avec une reference constante, on ne peut pas la modifier. C'est utile pour les gros objet dont la recopie serait couteuse.

On va me dire, d'accord, mais on peut pointer vers un objet constant. Oui on peut, mais on peut avoir besoin de ne pas passer par un pointeur. Par exemple avec des fonctions templates.
Si on a une operation d'addition comme:

template <typename T> T& addition (const T& a, const T& b) {return a+b;}

On ne se traine pas des pointeurs partout dans le code et ainsi l'ecriture est plus simple.

La notation reference permet egalement d'empecher la 'reaffectation' des pointeurs. Une reference n'est pas reaffectable.

hadrianus
hadrianus
Niveau 7
18 février 2009 à 15:45:34

Je reviens car j'ai un problème qui n'a pas beaucoup avoir avec le sujet d'origine , voila j'ai du réinstaller visual C++ du à un reformatage du PC.Je me suis entrainer pour le C++ et j'aimerais le mettre en application à la librairie SDL, j'ai installe tout mais j'ai une erreur bizarre.
J'ai mis simplement le code de base.

  1. include <iostream>
  2. include <SDL/SDL.h>

int main()
{
return 0;
}

voila l'erreur:SDLmain.lib(SDL_win32_main.obj) : error LNK2019: symbole externe non résolu _SDL_main référencé dans la fonction _main

Si vous pouviez m'aider ^^

godrik
godrik
Niveau 30
18 février 2009 à 16:11:20

il faut rajouter la lib sdl dans les options de linkages de ton projet.

hadrianus
hadrianus
Niveau 7
18 février 2009 à 16:17:11

Je suppose que tu veux parler des dépendances supplémentaire pour visual C++ hé bien j'y est déja rajouter :
SDL.lib
SDLmain.lib

godrik
godrik
Niveau 30
18 février 2009 à 16:46:22

etrange, on trouve ca sur le web qui parle de retirer l'option /clr : http://www.developpez.net/forums/d98800/c-cpp/outils-c-cpp-edi-compilateurs-etc/visual-cpp/mfc/error-lnk2019-sdl-1-2-9-a/

hadrianus
hadrianus
Niveau 7
18 février 2009 à 19:21:09

J'ai vérifier dans mes paramètres de projet , le clr n'est pas activer :-(

dnob700
dnob700
Niveau 10
18 février 2009 à 22:41:51

Ta fonction "main" doit absolument avoir le prototype suivant pour l'utiliser avec la SDL :
int main(int argc, char** argv);

C'est du à une conception complètement débile de la bibliothèque, mais c'est comme ça.

En fait, dans SDL.h il y a un truc comme ça :

  1. define main _SDL_main

Et la vrai fonction main est dans SDLmain.lib, elle va alors appeler la fonction _SDL_main(argc,argv) qu'elle a prototypé. Mais il faut que ta fonction main colle avec ce prototype pour que ça fonctionne.

hadrianus
hadrianus
Niveau 7
19 février 2009 à 19:14:48

Merci beaucoup , en effet c'est complètement débile , honnêtement un certain moment je me suis demander si c'était pas ça mais je me suis dit non c'est pas possible ^^

John--dabide
John--dabide
Niveau 5
20 février 2009 à 22:52:48

Si tu es passé au C++ je te conseil vivement de lacher SDL et de passer à SFML, qui est en quelque sorte une SDL codé orienté objet (en c++), elle est plus simple , plus vaste, plus performante.

Jette au moin un oeil :
http://www.sfml-dev.org/features-fr.php

hadrianus
hadrianus
Niveau 7
21 février 2009 à 08:42:34

Je viens de regarder pour SFML , ça à l'air interressant mais je n'y vois pas beaucoup d'intêret pour moi à part le réseau et la non-dépendance à FMOD pour un jeu commercial.Je préfèrerais camper sur la SDL merci quand même :)

John--dabide
John--dabide
Niveau 5
24 février 2009 à 18:00:43

tu peux utiliser FMOD si ça t'amuse, mais SFML gère l'audio de base. Mais bon coder en c++ avec une librairie codé en C , ça n'a pas de sens.

godrik
godrik
Niveau 30
24 février 2009 à 18:32:07

Ca fait des annees que je regardes ces encapsulation et c'est toujours exactement les memes a quelques noms de fonction pres.

Avant on le faisait en C dans des lib differerente, maintenant on fait tout dans la meme lib mais en C++.
Du coup c'est tres different, tu appelles des fonctions sur un objet au lieu d'appeler une fonction avec un pointeur en premier parametre.
Et en plus, tu n'es jamais bien sur de ou sont les frontieres des modules, est ce que le module machin depend et communique avec le module bidule ?
dans la plupart des cas, ils n'ont pas de raison d'interagir ensemble, mais on les met quand meme dans la meme lib, comme ca on a un gros bouzin avec plein de classe...

taggez moi aigri.

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