Tu devrais consulter la FAQ
Tu as juste à taper RAII dans le moteur de recherche, et tu auras ta réponse...
Tu devrais consulter la FAQ
Tu as juste à taper RAII dans le moteur de recherche, et tu auras ta réponse...
OuI.
+1, je te conseille de faire une recherche sur le forum et sur le site.
http://loic-joly.developpez.com/tuto...mart-pointers/ pour les pointeurs intelligents
Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++
Le guide pour bien débuter en C++ - Cours et tutoriels pour apprendre C++
bonjour,
il me semble que quand on ne sait pas utiliser les pointeurs (que ce soit du tout, ou intelligemment) on ne code pas de kernel, ni d appli professionnelle en C ou C++ d'ailleurs.
"vaste programme"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 . . .
http://www.gotw.ca/publications/mill02.htm :comment peut-on écrire du C orienté objet ???
Envoyé par Herb Sutter
Ça, c'est plus du basé objet que de l'orienté objet.
Boost ftw
Je comprends ta remarque, tu sais je ne faisais que citer. J'ai pas de définitions claires et vraiment arrêtées à apporter pour orienté objet et pour basé objet.
Cependant, toujours Herb Sutter parle (dans Exceptional C++) de l'Interface Principle, qui dit qu'une fonction libre qui mentionne une classe A et qui est fournie avec la classe A doit être considérée comme faisant partie de A. Cela vise en particulier les surcharges d'opérateurs et cela explique notamment la nécessité du Koenig Lookup. L'exemple en C plus haut part du même principe mais fournit des fonctions libre autres que des opérateurs.
Bien sur le C n'est pas un langage OO, pas d'encapsulation, ctors etc. mais (avec un peu de bonne volonté) on peut considérer l'approche ci-dessus comme OO. C'est peut-être subjectif, j'en sais rien..
Pour de l'orienté objet en C, voir: http://ldeniau.web.cern.ch/ldeniau/html/oopc.html
Pour ce qu'est la programmation orientée objet, j'aurais tendance à dire que la seule chose en commun entre toute les différents langages qui s'en réclament est l'utilisation du polymorphisme d'inclusion.
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Tiens au fait :
http://osdever.net/tutorials/pdf/cpp_kernel.pdf
C'est assez intéressant et y'a du code clair et bien commenté. (même le code asm)
"Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu
Il manque un peu les exceptions et le RTTI...
Boost ftw
C'est pas exhaustif loin de là comme t'a pu le remarquer... d'ailleurs ils précisent bien que les exceptions on ne peut pas les gérer .
"Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu
Un autre lien si ça peut servir:
http://wiki.osdev.org/C_PlusPlus
Ce qui est un mythe et est parfaitement faux.d'ailleurs ils précisent bien que les exceptions on ne peut pas les gérer
Encore une fois, il est parfaitement possible d'avoir tout le runtime C++ dans un noyau.
Boost ftw
... qu'on ne peut pas les utiliser dans le cas du code asm fourni avec...
(j'ai pas était jusqu'au bout de ma phrase).
Ils expliquent que dans ce cas précis du noyau qu'ils fournissent les segments correspondant aux exceptions, aux new / delete et donc à toute la S(T)L ne sont pas géré.
Seulement Amaury pouly à fourni un autre lien (que j'avais dans mes marques pages mais que j'avais pas donné avec ...) qui explique comment palié à ce défaut et avoir tout le runtime dans le noyau. (et aussi les inconvénients qui vont avec).
Le lien que j'ai montré précise bien que ce n'est qu'un tout petit début afin d'avoir une idée d'un noyau en C++.
"Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu
Salut,
Je viens après la bagarre, mais, selon moi, il doit être au minimum possible (bien que je ne me prononce pas sur le degré de difficulté) de créer un noyau en utilisant n'importe quel langage ne requiérant pas une quelconque machine virtuelle pour fonctionner capable de transformer le code en une succession d'instructions machine compréhensible par le processeur...
Je m'explique:
Ce qui a du présenter une réelle difficulté, ca a du être de créer le premier noyau et le premier assembleur, car tout était à faire et qu'il fallait travailler directement avec des instructions machine...
Mais à partir de là, les choses sont réellement devenues "beaucoup plus simples"...
Faut il rappeler que le premier compilateur C++ a été créé en utilisant le compilateur existant pour un langage plus ancien (j'hésite à dire que c'était un compilateur C)
Faut il rappeler que, lorsque linus tovald a créé son noyeau, il utilisait... un système d'exploitation existant
Et, si on relit ce qu'il disait à l'époque, s'il n'a pas choisi C++, c'est parce qu'il était, selon ses dires, "fondamentalement buggé", et non parce que le langage n'était pas adapté
Finalement, quel que soit le langage, tout ce qu'on doit lui demander pour créer un noyau c'est:A partir de là, même un langage fonctionnel capable de respecter ces deux conditions (s'il y en a un) et tout à fait capable de fournir un noyau de départ
- de fournir la succession de 0 et 1 qui sera compréhensible par le processeur
- de ne pas occasionner de dépendances (dll's ou VM) (ce qui semble disqualifer VC++ et java pour le travail )
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Tu peux tout-à-fait faire un programme sans dépendances à la CRT sous Visual. Sauf si tu veux une gestion d'exceptions C++, mais même ça, ça doit pouvoir se recoder.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager