Voir la version complète : C++ ?
AgentCisco
15/05/2008, 21h03
Bonjour :)
Je me posais la question : peut-on utiliser le langage C++ pour coder nos jeux sur DS ?
Et en particulier, le systeme des classes ?
Merci d'avance :)
Bien sûr, sans aucun soucis. ;)
Un soupçon de légère recherche t'aurais amené à la réponse. ;)
l'avantage du C c'est que tu control mieux la memoir car avec le C++ c'est juste un peu plus gourmand avec la POO et autres alors que DS a peu de RAM
Mais ça reste un avis personnel ;)
Utiliser du C++ sans classe je sais pas comment tu fais ^^. Autrement au niveaux du C mieux que le C++ sur DS ça change rien c'est pas une classe qui va te bouffer 4 Mo.
EDIT: C'est le CPU que sa bouffe pas de la RAM. ;)
C'est sur que creer une class ne prend pas enormement de place, le probleme vient plutot de la poo, chaque fois qu'on créé une instance d'objet, de la memoire est allouée.
Comme dans 90% des cas, on ne libere pas les objets dans le sens inverse de leur creation, on se retrouve a fragmenter la memoire.
En effet la DS n'est pas comme le PC et n'a pas de systeme de relocation de blocs ou de gestionnaires d'adresses logiques, donc imaginons, qu'une premiere class alloue on va dire 2Mo pour des tableaux divers, juste apres on créé une nouvelle instance d'un objet, la memoire allouée se retrouvera juste apres les 2Mo. La dessus, la class precedente est libérée pour une raison x ou y et le programme continue son bonhomme de chemin.
Dans cette configuration, on se retrouve avec la memoire de la DS (4Mo) coupée en 2 par juste un petit bloc alloué de quelques octets.
Si maintenant plusieurs instances font ca, on se retrouve avec des petits objets dispersés un peu partout en memoire. La memoire libre globale sera bien de presque 4Mo mais le plus gros bloc allouable risque de n'etre que de quelques centaines de Kilo d'octets...
Bref, voilà le gros point noir de la POO sur des petites machines a memoire limitée.
merci foxy c'est exactement ce que je voulais dire :)
merci foxy c'est exactement ce que je voulais dire :)
<_<
Schyzophrenic
17/05/2008, 14h30
Merci Foxy! Tu viens de m'éclairer sur pourquoi mais programme planté souvent à force de faire des delete... J'ai du plusieurs fois faire des fonctions de "réinitialisation" d'objets plutot que destruction / création, je comprenais pas pourquoi !!
AgentCisco
18/05/2008, 05h52
Merci à tous de vos réponses =)
J'avais testé de faire une simple classe test :
class test{
public:
u8 i;
};
mais j'avais une erreur de compil' que j'ai toujours d'ailleurs :/
<< error: expected '=', ',', ';', 'asm' or '__attribute__' before 'test' >>
Donc je me pose encore la question, comment utiliser le système des classes alors ? :/
Schyzophrenic
18/05/2008, 05h57
Et en mettant :
class test{
test();
virtual ~test();
public:
u8 i;
};
sinon mets le contenu global du fichier...
AgentCisco
18/05/2008, 07h04
J'ai exactement la même erreur :/
Sinon, je n'ai pas de fichier test en cours, puisque de base, je suis bloqué sur cette erreur de compilation :/
C'est bien des fichiers .cpp?
Schyzophrenic
18/05/2008, 15h15
C'est bien des fichiers .cpp?
lol j'y avais même pas pensé Brunni :)
il y a pas un #define C++ ou #define C++ a faire?
Krazplay
19/05/2008, 23h35
Ça n'a pas peut-être aucun rapport, mais je tente quand même.
Sur ce sujet (http://forum.palib.info/index.php?topic=4620.0) sur le forum de PAlib ils parlent d'un bug avec la dernière version et le C++, et ça n'est pas précisé si ça a déjà été corrigé...
Voili voilou :rolleyes:
AgentCisco
22/05/2008, 01h46
Merci de vos réponses encore une fois =)
Oui, le fichier .cpp, j'ai... oublié .... -_-"
J'avais juste essayé dans un main.c quelconque fournit dans les exemples.
Bon, je m'en vais essayer et je vous tiens au courant.
Merci ^^
vBulletin® v.3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd. Tous droits réservés - Version française vbulletin-fr.org