Questions sur virtual-functions

23
réponses

Quelle est la différence entre une fonction abstraite et une fonction virtuelle?

Quelle est la différence entre une fonction abstraite et une fonction virtuelle? Dans quels cas est-il recommandé d'utiliser virtuel ou abstrait? Quelle est la meilleure approche?
demandé sur 2008-12-24 17:11:43
17
réponses

Membre virtuel appel à un constructeur

Je reçois un avertissement de ReSharper à propos d'un appel à un membre virtuel de mon constructeur d'objets. pourquoi ne pas le faire?
demandé sur 2008-09-23 11:11:30
22
réponses

Pourquoi avons-nous besoin de fonctions virtuelles en C++?

j'apprends le C++ et j'entre dans des fonctions virtuelles. D'après ce que j'ai lu (dans le livre et en ligne ... nt donc, je veux être clair sur ce qu'il est exactement. Je juste ne pouvez pas trouver une réponse claire en ligne.
demandé sur 2010-03-06 10:10:35
20
réponses

Pourquoi n'avons-nous pas un constructeur virtuel en C++?

pourquoi C++ n'a-t-il pas de constructeur virtuel?
demandé sur 2009-04-09 12:46:31
12
réponses

Les fonctions virtuelles en ligne sont-elles vraiment un non-sens?

j'ai eu cette question quand j'ai reçu un commentaire de revue de code disant que les fonctions virtuelles n'ont pas b ... uld be this much intelligent! Temp* pTemp = &aDerivedObj; pTemp->myVirtualFunction(); return 0; }
demandé sur 2009-04-09 15:03:52
15
réponses

Fonctions et performances virtuelles-C++

dans ma conception de classe, j'utilise des classes abstraites et des fonctions virtuelles intensivement. J'ai eu le s ... e cette différence de performance n'est pas perceptible et on dirait que je fais une optimisation prématurée. Droit?
demandé sur 2009-01-16 11:22:36
9
réponses

Pourquoi C# implémente des méthodes non-virtuelles par défaut?

contrairement à Java, pourquoi les méthodes C# sont-elles traitées comme des fonctions non-virtuelles par défaut? Est ... tir. Mais, quid des effets secondaires? Est-il vraiment un bon compromis à avoir des méthodes virtuelles par défaut?
demandé sur 2009-05-02 18:28:05
7
réponses

D'où viennent les accidents "pur virtual function call"?

je remarque parfois des programmes qui s'écrasent sur mon ordinateur avec l'erreur:"pur appel de fonction virtuelle". Comment ces programmes, même compiler lorsqu'un objet ne peut pas être créé d'une classe abstraite?
demandé sur 2008-09-19 08:09:28
9
réponses

Quel est le coût d'avoir une méthode virtuelle dans une classe C++?

Ayant au moins une méthode virtuelle dans une classe C++ (ou l'une de ses classes parentes) signifie que la classe aur ... le destructeur, dans chaque classe, et ne l'enlever que lorsque vous avez besoin. Est-ce que sembler fou pour vous?
demandé sur 2009-03-20 22:30:37
12
réponses

Comment les fonctions virtuelles et vtable sont-elles mises en œuvre?

nous savons tous ce que sont les fonctions virtuelles en C++, mais comment sont-elles implémentées à un niveau profond ... vitesse affectée si la fonction virtuelle est en fait remplacé ou pas, ou n'ont aucun effet tant que c'est virtuel.
demandé sur 2008-09-19 07:29:44
12
réponses

Quand ne devriez-vous pas utiliser des destructeurs virtuels?

y a-t-il une bonne raison pour que ne déclare un destructeur virtuel pour une classe? Quand devriez-vous éviter d'en écrire un?
demandé sur 2008-11-19 07:27:50
3
réponses

C++ type de retour de la fonction virtuelle

est-il possible pour une classe héritée d'implémenter une fonction virtuelle avec un type de retour différent (n'utilisant pas un modèle comme retour)?
demandé sur 2011-01-12 06:35:54
11
réponses

Pourquoi ne pas avoir toutes les fonctions virtuelles en C++?

je sais que les fonctions virtuelles ont un overhead de déréférencement pour appeler une méthode. Mais je suppose qu'a ... énéficient de l'inlining. il pourrait y avoir d'autres raisons, et j'aimerais les connaître et les résumer.
demandé sur 2011-07-07 10:24:07
2
réponses

Peut-on avoir des fonctions virtuelles statiques? Si non, alors POURQUOI? [dupliquer]

possibilité de dupliquer: c++ membres virtuels statiques? peut-on avoir des f ... I? class X { public: virtual static void fun(){} // Why we cant have static virtual function in C++? };
demandé sur 2012-03-25 22:54:04
7
réponses

Cas d'utilisation de fonctions purement virtuelles avec le corps?

j'ai récemment appris qu'en C++ les fonctions virtuelles pures peuvent avoir un corps en option. Quels sont les cas d'utilisation pour de telles fonctions?
demandé sur 2010-04-09 20:52:24
5
réponses

Est-ce que final implique le contournement?

si je comprends bien, le mot-clé override indique qu'une déclaration donnée implémente une méthode de base virtual , et ... rride final signifie-t-il que final ne signifie pas? Qu'est-ce que le cas d'utilisation pour une telle combinaison?
demandé sur 2015-04-02 14:58:45
9
réponses

Cours de base sur les modèles ou les résumés?

si je veux rendre une classe adaptable, et permettre de sélectionner des algorithmes différents de l'extérieur -- quel ... une grande différence entre la version 2a et 2b, voir C++ FAQ . Pouvez-vous commenter ces possibilités?
demandé sur 2009-03-02 17:49:41
10
réponses

Quel est l'intérêt d'une fonction virtuelle finale?

Wikipedia a l'exemple suivant sur le modificateur Final C++11: struct Base2 { virtual void f() final; } ... fonction virtuelle et immédiatement le marquer comme final. Est-ce simplement un mauvais exemple, ou est-il de plus?
demandé sur 2012-07-29 00:27:24
9
réponses

Pouvez-vous mettre en cache une recherche de fonction virtuelle en C++?

Dire que j'ai un appel de fonction virtuelle foo() sur une classe de base abstraite pointeur, mypointer->foo(). Lorsqu ... ur temps à mettre en œuvre le cache en ligne, et ne l'ont pas comparé pour s'assurer qu'il y avait une amélioration?
demandé sur 2010-01-26 21:43:41
3
réponses

C++: pointeur vers la version monomorphique de la fonction de membre virtuel?

en C++, il est possible d'obtenir un pointeur vers une fonction de membre (non-statique) d'une classe, et ensuite l'in ... d'écrire une nouvelle fonction non-virtuelle qui fait l'appel monomorphique, et puis obtenir un pointeur pour cela.)
demandé sur 2011-02-21 13:08:55
6
réponses

Quand un vtable est-il créé en C++?

quand exactement le compilateur crée-t-il une table de fonction virtuelle? 1) lorsque la classe contient au ... V? puisque B ne déclare pas f () comme virtuel, est-ce que la Classe C obtient le polymorphisme dynamique?
demandé sur 2009-12-26 21:02:01
6
réponses

Pourquoi toutes les méthodes java sont implicitement surridables?

dans C++, je dois explicitement spécifier le mot-clé ' virtual 'pour rendre une fonction membre' overridable', car il ... faut et fourni la possibilité de désactiver le comportement dominant sur l'utilisation explicite du mot-clé "final".
demandé sur 2009-05-07 23:56:51
5
réponses

Outrepasser une fonction de membre avec un type de retour différent

prenons l'exemple suivant: #include <iostream> using namespace std; class base { public: virtu ... asse dérivée avec un type de retour différent. Mais le compilateur génère une erreur. Est ma compréhension correcte?
demandé sur 2012-01-23 08:49:21
8
réponses

Quels sont les usages des fonctions virtuelles pures en C++?

j'apprends sur le C++ dans une classe en ce moment et je n'ai pas tout à fait grok fonctions virtuelles pures. Je comp ... e, mais pourquoi voulez-vous déclarer comme égale à 0 si vous avez l'intention de le définir dans la classe dérivée?
demandé sur 2009-07-02 00:07:20
9
réponses

Pourquoi les fonctions virtuelles ne devraient-elles pas être utilisées de manière excessive?

je viens de lire que nous ne devrions pas utiliser la fonction virtuelle de façon excessive. Les gens pensent que moin ... t que la fonction virtuelle peut être plus lente que les fonctions normales en raison de la recherche de table en V.
demandé sur 2010-06-16 08:57:30
2
réponses

Quel est le coût de l'appel d'une fonction virtuelle dans un non-polymorphe?

j'ai une base abstraite pure et deux classes dérivées: struct B { virtual void foo() = 0; }; struct D1 : B { vo ... r effacement de type) que simplement en utilisant des fonctions virtuelles (ne peut pas encore tester avec godbolt).
demandé sur 2013-02-17 19:48:43
3
réponses

Existe-t-il des alternatives au polymorphisme en C++?

le CRTP est suggéré dans cette question sur le polymorphisme dynamique. Cependant, ce patron ne serait utile qu ... e cas) est la bienvenue. Edit: Googler avère que la mention de modèles de fonction. Ces prometteurs.
demandé sur 2009-02-25 05:51:29
3
réponses

Quels sont les dangers de rendre une méthode virtuelle?

j'ai fait quelques moqueries avec des RhinoMocks et il exige que les méthodes moquées soient virtuelles. C'est très bi ... mais je me demandais quels sont les dangers potentiels de rendre les méthodes virtuelles que je devrais surveiller?
demandé sur 2008-09-26 05:29:39