C ++ est-il complètement un langage orienté objet?
J'ai lu à propos de la petite parler d'être complètement orienté objet.. est le C++ aussi complètement orienté objet? si non.. alors pourquoi donc??
source d'informationauteur Vaibhav
Vous devez vous connecter pour publier un commentaire.
Non, il n'est pas. Vous pouvez écrire un valide, bien codé, parfaitement coiffés programme C++ sans utiliser un objet, même une fois.
C++ prend en charge la programmation orientée objet, mais OO n'est pas intrinsèque à la langue. En fait, la fonction principale n'est pas membre d'un objet.
En smalltalk ou Java, vous ne pouvez pas attacher vos chaussures (ou d'écrire "Hello, world") sans au moins une classe.
(Bien sûr, on peut discuter sur le Java étant complètement langage orienté objet aussi, parce que ses primitifs (int) ne sont pas des objets.)
C++ contient un 'C' dialecte comme un sous-ensemble, permettant un caractère purement procédural style de code.
Définir OOL. Si vous voulez dire à l'aide de classes, etc, alors C++ prend en charge OO-style de programmation, entre autres. Il n'y a rien qui vous empêche de pas à l'aide de classes. Java otoh, que, ne permet pas de mais les classes. (Oui, je sais, Java prend en charge FP.)
La réponse courte est non - C++ n'est pas entièrement langage OO.
Vous pouvez écrire "pas exactement" la programmation orientée objet en C++, même sans recourir à l'aide de la C de sous-ensemble. Un exemple est votre méthode principale - qui n'est pas contenu dans n'importe quelle classe.
La raison principale est le fait que C++ est originaire de C - lorsque Stroustrup a créé la langue qu'il avait l'intention de créer une nouvelle version de C (avec des classes). en fait, il ont essayé de présenter sa création comme la nouvelle saveur de C (C84).
Les grands arguments de gens ont contre déclarant C++ comme "pur" OO c'est qu'il nécessite encore au moins un non-OO bits,
main()
et que tout n'est pas un objet (int
long
et al).Il expose également l'état d'un objet pour une manipulation sans l'aide de la transmission de message paradigme (le public et les membres). Cela brise l'encapsulation des objets.
Java, d'autre part, a
main()
comme une méthode statique d'une classe de sorte qu'il est plus proche, mais il a encore de la non-objet les choses.Smalltalk est la lingua franca normalement considéré comme le plus pur des purs, mais je ne connais pas assez de commentaire.
Moi, j'ai tendance à laisser ce genre d'arguments en faveur de l'intelligentsia alors que je fais avec le développement du code et de la prestation de mes clients 🙂
C++ n'est pas un pur langage orienté objet, et comme déjà mentionné que rien ne vous oblige à utiliser les concepts de programmation orientée objet en C++. C++ est ce que vous appelez un hybride langage orienté objet, car il est basé sur le C, qui est purement un langage procédural.
Exemples de pure langages orientés objet sont C# et JAVA.
Non, il n'est pas purement d'un langage orienté objet. En particulier, les types de données primitifs en C++ ont des règles qui sont souvent différents de types de données qui ne sont pas primitifs. En outre, il est possible d'avoir des fonctions qui ne sont pas associés avec n'importe quel type de données du tout. Il y a une myriade d'autres façons de C++ n'est pas un pur langage orienté objet, mais ceux sont deux des plus grandes raisons.
Ni Java et C# sont de la pure langages orientés objet, soit parce qu'ils ont des types de données primitifs qui n'obéissent pas à la même sémantique que l '"objet" types de données.
bien sûr que non!!
Il prend en charge intrinsèque des types de données.
C++ n'est rien, mais "C with classes". Je peux encore écrire un programme C et l'enregistrer en tant que .fichier cpp.
Donc, la Preuve par l'implication dit "C++ n'est pas purement d'un langage orienté objet."