Question

Si je fais

double d = 34.56;
int i = (int)d;

Suis-je pas "coulée en descente"?

ou

Est ce terme utilisé uniquement en termes de classes et d'objets?


Je suis confus parce que dans ce cas, nous sommes « Downcasting » d'un plus grand double à un int plus petit, mais en cas de classes, nous « baissés » d'un base class plus petit à un plus grand derived class.

Ne sont pas ces deux conventions, dans un certain sens, en face?

Était-ce utile?

La solution

Non, vous n'êtes pas en bas casting. Vous êtes juste casting, et vous coupant quoi que ce soit après la décimale.

coulée ne s 'applique pas ici. Les primitives int et double sont des objets pas en C ++ et ne sont pas liés les uns aux autres de la manière deux objets dans une hiérarchie de classes sont. Ils sont des entités distinctes et primitives.

coulée vers le bas se réfère à l'acte de coulée objet de l'une dans l'autre objet qui en découle. Il se réfère à l'acte de se déplacer vers le bas de la racine de la hiérarchie des classes. Cela n'a rien à voir avec la taille des types en question.

Autres conseils

  

Downcasting est l'acte de coulée d'un   référence d'une classe de base à l'une des   ses classes dérivées.

http://en.wikipedia.org/wiki/Downcasting

Non, vous ne baissés, car double et int sont pas des classes.

int et double sont à la fois primitives et non des classes, de sorte que les concepts de classes ne leur sont pas applicables.

Oui, il est une conversion d'une « plus grande » à un type « plus petit » (en termes de taille numérique), mais il est juste un « casting » et non un « baissés »

Les deux ne sont pas tellement opposé comme simplement sans rapport. Dans le cas d'exemple, nous prenons une valeur d'un type, et la distribution prend cela et produit une valeur similaire d'un type qui est vaguement similaire, mais sans aucun rapport.

Dans le cas de traverser un arbre d'héritage avec quelque chose comme dynamic_cast, nous prenons un pointeur (ou référence) à un objet, et ayant déjà décidé de le traiter comme un pointeur vers un autre type d'objet, nous sommes essentiellement (tentative de) traiter comme (quelque chose de plus proche) le type d'origine de l'objet à nouveau. En particulier, cependant, nous sommes pas créer une valeur nouvelle ou différente du tout -. Nous nous créons simplement une vision différente de la même valeur (soit le même objet réel)

Vous n'êtes pas Castings - vous convertir. Autre chose entièrement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top