peut-on dire Je me demande quelle serait l'explication appropriée de ce p> Ici, pouvons-nous dire a code> est un objet de type int code> et f code> est un objet de type float code>? < / p> p>
4 Réponses :
@patashu utilise la définition de la programmation orientée objet: un objet est une chose avec des méthodes, etc. et c'est parfaitement bien. P>
Cependant, C ++ est une langue multi-paradigme - elle prend en charge plusieurs modèles de programmation. La définition de langue C ++ utilise le mot "objet" dans le sens large que les écrivains compilateurs utilisent: un objet est une région de stockage avec diverses opérations pouvant être effectuées sur ce stockage. Les opérations sont définies par le type de l'objet. Il existe un ensemble d'opérations bien définies pouvant être appliquée à un objet de type A code> et f code> sont des objets de type int code> et tapez float code>, respectivement. Oui, cela contredit ce que @Patashu dit, et c'est parce que nous utilisons différentes définitions de "objet". P>
int code>, donc lorsque vous savez que vous avez affaire à un int code> vous et le compilateur savez Quelles sont les choses que vous pouvez faire avec cela et, par implication, ce que vous ne pouvez pas faire avec cela. p>
par paragraphe §1.8, 1 sup> Un objet est une région de stockage. strong> [Remarque: une fonction n'est pas un objet,
indépendamment de savoir si elle occupe un stockage de la manière dont
objets font. -End Remarque] Un objet est créé par une définition (3.1), par
une nouvelle expression (5.3.4) ou par la mise en œuvre (12.2) en cas de besoin.
Les propriétés d'un objet sont déterminées lorsque l'objet est créé.
Un objet peut avoir un nom (clause 3). Un objet a une durée de stockage
(3.7) qui influence sa vie (3.8). Un objet a un type (3.9).
Le terme Type d'objet fait référence au type avec lequel l'objet est
créé fort>. p>
[intro.Object] p>
blockQuote>
et ces variables correspondent à la définition citée ci-dessus. p> A code> et b code> sont des objets de leurs types correspondants. P>
Je dirais oui. Un objet de données em> est simplement une région de stockage contenant une valeur ou un groupe de valeurs. Chaque objet de données en C ++ doit avoir un type de données (identificateurs d'objets de données et de types de données est établi dans la déclaration de variable / constante em>). Dans la classification des types de données, c'est où nous voyons que Les types de données peuvent être classés dans d'autres groupes, souvent se chevauchant, des groupes: par exemple, on peut dire que int a code> et float f code> d'accord avec cette définition. Si nous voulons voir les différences entre celles et les objets "traditionnels" dans des langages orientés objet, nous devrions montrer le concept de type type de données em>, qui aide le compilateur allouer le stockage pour cet objet de données et interpréter sa valeurs de mémoire lorsqu'il est accessible. p>
int A; code> et objet A; code> ne sont pas "toutaux": p>
int code> et float code> sont types de données de base em>, en ce sens qu'ils sont fournis par la langue. L'objet code> type code> dans cet exemple serait un type code> dérivé code> car il est créé à partir de types de base. P>
objet code> est un type em> défini par l'utilisateur; et que int code> est un type scalaire em>, car il représente une seule valeur de données. p>
(ou plutôt "sans doute pas") p>
Ad "Variables et constantes sont des objets de types de données" em>: p>
Bien que vous puissiez trouver l'expression "objet de type" dans la norme C ++ (comme "objet de type T" [basic.def.odr] / 5) et la norme C (par exemple "objet de type wchar_t" 3.7. 3), on pourrait discuter de l'utilisation du terme "variable" dans votre exemple, au moins en C ++: p>
[BASIC] / 6 P>
Une variable est introduite par la Déclaration d'une référence autre qu'un élément de données non statique ou d'un objet. Le nom de la variable indique la référence ou l'objet. P>
blockQuote>
donc, Mais une référence afaik n'est pas un objet (ne doit pas être) - donc on pourrait dire que les variables ne sont pas nécessairement des objets. Bien sûr, ils ne sont pas identiques, par ex. Allocation de mémoire dynamique. P>
ad "A est un objet de type de données int et f Un objet de type flotteur" em> p>
afaik qui se conforme à la norme, bien que d'être plus précis, il faudrait inclure quelque chose comme "dénote", par exemple. " Mais je pense qu'il n'y a pas d'ambiguïté, je le considère donc bien. p> non h1> strong> p>
réponse int = 42; int & deepthough = réponse; code> introduit: p>
int code> li>
Réponse code>, faisant référence à l'objet ci-dessus li>
deepthought code>, faisant référence au même objet li>
ul>
A code> désigne un objet de DataType int". p>
N.b. Dans C, le terme "constante" a une signification différente comme en C ++. Les constantes en C sont des littéraux en C ++. Quel que soit le nom que vous le donnez, les constantes / littéraux non stricts sont des rapeaux, ce qui les disqualifie probablement comme des objets (vous ne pouvez pas prendre une adresse d'entre eux, vous ne pouvez pas leur attribuer, ergo, il n'est pas nécessaire qu'ils occupent réellement espace de rangement).
En C ++ une variable est une référence ou un objet. Une référence n'est pas un objet.
Qu'entendez-vous par «constantes»?
42 code>, par exemple est une constante et est pas i> un objet.const code> et "constante", malgré la similitude de leurs noms, ne sont pas la même chose.