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
9
réponses

Utilisation de fonctions virtuelles en c#

Quelle est l'utilisation de fonctions virtuelles en c#?
demandé sur 2009-06-30 10:54:35
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

Surpasser les fonctions virtuelles publiques avec des fonctions privées en C++

y a-t-il une raison pour rendre les permissions sur une fonction virtuelle c++ écrasée différentes de celles de la classe ... r les méthodes virtuelles dans les classes dérivées par rapport à la classe de base? Est-il une raison légitime de le faire?
demandé sur 2009-01-27 21:24:15
2
réponses

Quelle est la première entrée (int (*) (...)) 0 vtable dans la sortie de G++ -fdump-class-hierarchy?

Pour ce code: class B1{ public: virtual void f1() {} }; class D : public B1 { public: void f1() {} }; int main ... generic --build=x86_64-suse-linux Thread model: posix *gcc version 4.4.1 [gcc-4_4-branch revision 150839] (SUSE Linux)*
demandé sur 2011-04-19 11:08:53
16
réponses

Pénalité de Performance pour travailler avec des interfaces en C++?

y a-t-il une pénalité de performance d'exécution lors de l'utilisation d'interfaces (classes de base abstraites) en C++?
demandé sur 2008-09-22 12:41:37
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
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

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
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
9
réponses

Moyens de détecter si une fonction virtuelle C++ a été redéfinie dans une classe dérivée

En bref: à partir d'un pointeur de classe de base C++ qui pointe vers une instance d'une classe dérivée, comment peut-on d ... e significative au temps d'exécution de la programme, et les implémentations par défaut renvoient simplement une constante).
demandé sur 2011-01-20 00:58:15
4
réponses

Type de retour Covariance avec pointeurs intelligents

En C++ on peut faire ceci: struct Base { virtual Base* Clone() const { ... } virtual ~Base(){} }; struct Derived : ... eur intelligent Derived. Merci d'avance! mise à Jour: en effet, mon second exemple ne compile pas, grâce à Iammilind
demandé sur 2011-08-03 14:04:19
8
réponses

Pourquoi une fonction virtuelle en être privé?

j'ai juste repéré ce code: class Foo { [...] private: virtual void Bar() = 0; [...] } Est-ce que cela a un but? (je suis en train de le port certains code de VS G++, et cela a attiré mon attention)
demandé sur 2009-07-16 00:49:09
2
réponses

Différence entre redéfinir et outrepasser une fonction

Supposons que j'ai de la classe A avec une fonction virtuelle F(): class A { virtual void F() { // Do som ... A { void F() override { // Do something }; }; Quelle est la différence entre F() dans les classes B et
demandé sur 2016-02-19 16:45:38
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
4
réponses

Que faire si Je ne tiens pas compte de l'avertissement " cache membre hérité. Faire passer le membre actuel au-dessus de cette mise en œuvre…"

C'est peut-être un bon point, mais il s'agit de l'avertissement que le compilateur questions si vous faites quelque chose ... et? Est-ce que mon programme fonctionnera différemment si j'ajoute le mot clé "nouveau" par rapport à si Je ne le fais pas?
demandé sur 2011-05-09 09:54:09
3
réponses

Est-il logique d'ajouter le mot-clé final à la fonction virtuelle dans une classe qui n'a pas de classe de base (n'est pas dérivé)

je suis à la lecture d'un génial génial C++11 tutoriel et l'auteur fournit cet exemple, tout en expliquant les final mot c ... e final mot clé? À mon avis, vous pouvez juste éviter d'utiliser le mot-clé virtuel ici et prévenir f() d'être remplacé.
demandé sur 2017-05-24 11:41:53