Revue de sujet
Lolilolight Posté le 19 Mai 2009 à 18:29
Avatar de Lolilolight
Messages : 301
Oui je suis aussi d'accord, bien qu'il y aie moyen de simuler de l'orienté objet en C cela reste limité car le lanage n'est pas du tout adapté pour cela, j'ai déjà essayer en faisant tout simplement des fichiers avec toutes sorte de structures et liste, mais il y a des concept comme l'héritage qui ne sont pas adaptable en C ou alors il faut être super calé, autant utilisé le c++, faire de l'orienté objets en C c'est comme faire de la confiture avec un moule.
freemaul Posté le 26 Avr 2009 à 18:35
Avatar de freemaul
Messages : 174

Citation :

Si tu veux faire de la programmation réseau faire cela en objets cela risque d'alourdir le code pour pas grand chose parce que la programmation réseau c'est plutot système.
Je ne vois pas l'intérêt de faire des entités d'objets pour ouvrir des sockets et les refermer....



Faire une entité Client et une Serveur par exemple...

Ensuite la question abordée ici (il y a un petit moment) n'était pas C ou C++, ni même Objet ou pas Objet , mais sur la pertinence du C orienté objet, et la réponse à été la suivante :
Le C orienté objet ca ne sert à rien, autant faire du C++ ca a été (entre autre) créer pour cela !
akd Posté le 26 Avr 2009 à 16:54
Avatar de akd
Messages : 319
En règle général à moins de faire un projet de 300 lignes de code, la POO est de plus en plus justifiée et apporte quand même des bonus indéniables de nos jours.

Je veux même pas savoir à quel point mon projet serait difficile à débugger si je le faisais en programmation linéaire :pathetic:
le_teigneux Posté le 24 Avr 2009 à 19:01
Messages : 26

Citation :

[Oui mais je veut que ma biblio soit en C pour être utilisable en C, donc la vrai question ai :
si je code en C, est-ce utile de coder en orienté objet ?


Alors il y a des tas de personnes qui font des débats inutiles C contre C++, POO ou non .
Je te répondrais que cela dépend de la pertinence de ce que tu as à faire.
Si tu veux faire de la programmation réseau faire cela en objets cela risque d'alourdir le code pour pas grand chose parce que la programmation réseau c'est plutot système.
Je ne vois pas l'intérêt de faire des entités d'objets pour ouvrir des sockets et les refermer....
en C tu peux simplement utiliser des structures et des pointeurs de fonctions.


Citation :


juste pour écrire à l'écran le contenu de "content-length" recu en HTTP.
Certain me diront : tu n'avais cas coder en C++, c'est fait pour et cela aurait été plus simple à utiliser :
Code :


Je n'en vois vraiment aucun intérêt ; tout le monde veut mettre de l'objet à toutes les sauces alors que ce n'est pas toujours pertinent....
je te conseillerais de consulter des livres de POO généraux.
Fais de la POO quand c'est vraiment utile et pertinent pour faire du code structuré et modulaire.
Si tu veux des entités et blocs de code réutilisables alors fais de l'objet.
freemaul Posté le 06 Fév 2009 à 17:39
Avatar de freemaul
Messages : 174
Objective-C --> jamais entendu parler lol


Citation :


Je pense que je proposerais plutot quelquechose du genre :
Code :

content_print(client->httprecever->content_length);


Oui c'est ce que je vais faire finalement.


Citation :

Si tu compte programmer en C, alors oublie l'orienté objet


au moin c'est clair ^^

Donc je pense que proposer une vision pseudo-objet par le biais d'une structure sur laquelle on applique des fonctions, est plutot une bonne idée. Par contre, effectivement, utiliser des pointeurs de fonction ne fait qu'alourdir le code.
Mod Posté le 06 Fév 2009 à 12:40
Avatar de Mod
Messages : 4954
Alors, pour savoir programmer en Objective-C... Rien à voir avec du C. Absolument pas. Ca reste le langage le plus laid et peu pratique que j'ai eu l'occasion d'utiliser jusqu'à présent (en numéro deux vient le script BASH...).

Par exemple, pour instancier un objet :

[listArray addObjectFromArray:[NSArray arrayWithObjects:@"music1",@"music2,@"music3,@"music4",nil]]

Objet listArray. Méthode addObjectFromArray. Paramètre NSArray. Méthode arrayWithObjects en tant que constructeur, suivi de chaîne de caractères comme items).

(Utilisation Cocoa). Pas forcément un bon exemple de code, mais un bon exemple de difficulté de lecture avec des @ des [] des : des +, des - dans tous les sens.
akd Posté le 06 Fév 2009 à 11:31
Avatar de akd
Messages : 319
Je me rapelais bien avoir entendu un truc sur le C orienté objet y a longtemps

ll s'agit de l'objective C : http://fr.wikipedia.org/wiki/Objective_C

(Faut voir si ca reste compatible avec du C pur mais je crois que oui).

Après c'est une question de gout, je pense qu'on doit pouvoir se rapprocher structurellement d'un code orienté objet tout en conservant l'aspect non objet de C et sans se prendre la tête.

Suffit de conserver un découpage de fichiers proches de ce que tu ferais en orienté objet...

(chais pas trop si mon message aide des masses...)
SEB Posté le 05 Fév 2009 à 14:35
Avatar de SEB
Messages : 554
Personnellement je ne pense pas que tu sois obligé de coder en objet. L'objet pour moi est simplement une facon de concevoir la structure d'un programme.

Donc à mon avis tant que tu conserve une syntaxe utilisateur simple et claire tu peux coder comme bon te semble.
Par exemple pour ce qui est du :

Code :
client->httprecever->content_length->print(client->httprecever->content_length);


Je pense que je proposerais plutot quelquechose du genre :

Code :
content_print(client->httprecever->content_length);


ou ce genre d'approche impérative. meme si derrière la structure hierarchique est arborescente et donc en quelque sorte objet.

edit : grillé par Mod :p
Mod Posté le 05 Fév 2009 à 14:29
Avatar de Mod
Messages : 4954
Si tu compte programmer en C, alors oublie l'orienté objet. Le langage n'est pas du tout prévu pour cela, c'est une vraie plaie en pratique. Cette façon de faire à coup de pointeurs de fonction est plus une excuse pour le C qu'autre chose. Lorsque le C++ a été développé, c'était à la base un "C with classes". Tout simplement pour dire que ça n'a pas été fait juste pour le plaisir, mais bien parce que le C n'était pas adapté.

Un programmeur C saura de toute manière aisément se débrouiller avec des fonctions.
freemaul Posté le 05 Fév 2009 à 14:07
Avatar de freemaul
Messages : 174
Bonjour, j'aurais aimer avoir votre avis sur l'utilité de coder en C orienté objet.
Je dit bien C orienté objet, et non C++, car j'ai, il y a peu, commencé à écrire une bibliothèque en C permettant de géré le protocole HTTP.
Et ayant lu quelque explication sur comment coder en orienté objet en C j'ai écrit mon source de cette manière car je me suis dit que c'était plus compréhensible pour la personne qui devra utiliser cette biblio.
Ors au fur et à mesure je me suis rendu compte de deux chose essentiel :
1- c'est beaucoup plus chiant a coder le source de cette manière, il faut suivre des règles certes simple, mais c'est quand meme une perte de temps. Alors je me dit, je perd du temps pour en faire gagner au futur utilisateur de cette biblio et la :
2- pour des objet en contenant d'autre cela devient vite une usine à gaz , exemple :
Code :
client->httprecever->content_length->print(client->httprecever->content_length);

juste pour écrire à l'écran le contenu de "content-length" recu en HTTP.

Certain me diront : tu n'avais cas coder en C++, c'est fait pour et cela aurait été plus simple à utiliser :
Code :
client->httprecever->content_length->print();


Oui mais je veut que ma biblio soit en C pour être utilisable en C, donc la vrai question ai :
si je code en C, est-ce utile de coder en orienté objet ?

merci, parce que moi je ne sais pas vraiment quoi choisir.
Nouveau message

Large sourire Sourire Veut Langue Absurde Choqué Clin d'oeil Innocent Cool Fier rougissant confus Neutre Etonné Content Triste Douloureux Pathétique Etrange Agacé Colère Tordu Flèche Question Exclamation Rigole Gêné Amoureux Oui No Fou Pleure Pleure de joie Mignon Coup de coeur Hystérique Blasé Ninja Pouffe Stun Suspicieux Incompréhensible
Gras
Italique
Souligné
Barré
Gauche
Centré
Droite
Justifié
Flottant à gauche
Flottant à droite
Lien
Citation
Puce
Spoiler
Wiki
Image
Flash
Youtube


Prévisualisation
GameCorp - Site d'apprentissage et d'entraide à la création de jeux vidéo.
XHTML Valid 1.1 - Page générée en 0.0293 secondes