Tu devrais consulter la FAQ :roll:
Tu as juste à taper RAII dans le moteur de recherche, et tu auras ta réponse...
Version imprimable
Tu devrais consulter la FAQ :roll:
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
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.
http://www.gotw.ca/publications/mill02.htm :Citation:
comment peut-on écrire du C orienté objet ???
Citation:
Envoyé par Herb Sutter
Ça, c'est plus du basé objet que de l'orienté objet.
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.
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)
Il manque un peu les exceptions et le RTTI...
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 ;).
Un autre lien si ça peut servir:
http://wiki.osdev.org/C_PlusPlus
Ce qui est un mythe et est parfaitement faux.Citation:
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.
... 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++.
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) :question:
Faut il rappeler que, lorsque linus tovald a créé son noyeau, il utilisait... un système d'exploitation existant :question:
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 :aie:)
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.