Bonjour,
Je suis actuellement en train de développer un moteur 3D basique en C++. N'ayant jamais attaqué un projet de cette taille (et ayant apprit à coder pas très proprement car j'étudie à Epitech et suis obligé de me taper leur norme idiote :/), j'essaye de faire ça le plus proprement possible, mais mes maigres connaissances en la matière me font me poser plein de questions. Voici les principales :
1) Une classe par .h/.cpp, c'est ce que j'applique. Est ce que je mérite de me faire lapider pour ça, ou est ce propre et standard?
2) Que pensez vous des long long int? Peuvent-ils poser des problèmes de compatibilité à l'exécution du programme dans certains environnements, ou n'est ce juste que certains compilateurs qui ont du mal avec? Peuvent-ils être utilisés proprement ou sont-ils à bannir de nos programmes?
3)Pour stocker les différentes données de mon programme, j'utilise une arborescence à base de structure et de classes. Cette arborescence est accessible par un pointeur unique sur une structure et donne donc accès à la totalité des données du programme (non encapsulée dans les classes bien entendu).
Je la donne en exemple pour que ça soit plus clair :
Bon, en réalité, elle est bien plus complexe, mais je la simplifie pour l'exemple. Donc à partir de ça, je me demandais si il était une bonne idée de rendre le pointeur sur la structure mainData global (non pas taper! ), car à mon sens cela permet de disposer de tous les avantages d'une globale tout en limitant les inconvénients qu'elles causent : seul un pointeur de 4octet sera global, ce qui n'est pas très lourd à faire passer aux fonctions et limite donc la perte de perfs, mais j'aurais pourtant accès à toutes les données de mon programme partout et à tout moment. Bon, j'imagine que je dois me tromper et qu'en fait c'est crade comme il faut, mais j'aimerais en être certain et en avoir l'explication le cas échéant. (Pour ma défense, je n'ai jamais utilisé de globales jusqu'à maintenant et les ais toujours fuies comme la peste, non je dis ça parce que je tiens à mon image quand même )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 struct mainData { int drawParamsMask; VideoParams *videoParams; Mesh *Models; Map *Materials; ...ect };
Voilà, c'est tout pour le moment, mais c'est déjà beaucoup je le sais, et c'est pour ça que je dis un grand merci (en avance) à ceux qui auront lu mon message ainsi qu'à ceux qui pourront éclairer ma lanterne en y répondant.
Partager