Le constructeur de copie de la classe de base ne doit pas être appelé

user3836455

Ceci est juste un extrait de code expliquant la hiérarchie des classes, pas le code problématique réel

class A
{};

class B : public class C
{};

class C : public NocopyClass // constructors are private in Nocopy class
{};

template<typename T1, typename T2>
class D
public:
  T1 _t1;
  T2 _t2;
  D(T1& t1, T2& t2) : _t1(t1),_t2(t2) {}

{
};

class E: public class D<A,B>
{
    E(const& a,const& b) : D<A,B>(a,b) {}
};

fonction d'appel:

A objA;
B objB;

E objE(objA,objB);

Du programme appelant, je veux passer l'objet de A et l'objet de B à la classe E Ici, le constructeur de copie défini dans E est appelé et les objets de A et B sont copiés, ce qui à son tour en invoquant le constructeur de copie de la classe B, jusqu'à la super base constructeur de copie de classe NocopyClass, qui ne permet pas aux objets d'être copiés.

Comment modifier la fonction appelante de sorte que les constructeurs de classe de base ne soient pas appelés? Y a-t-il un moyen?

Robert Jacobs

Essayez de déclarer _t1 et _t2 comme références.

template<typename T1, typename T2>
{
class D
public:
  T1 &_t1;
  T2 &_t2;
  D(T1& t1, T2& t2) : _t1(t1),_t2(t2) {}


};

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Le constructeur de classe de base n'est pas appelé?

Je ne peux pas faire fonctionner une méthode de classe; si je copie-collez le code de la méthode où la méthode doit être appelée, cela fonctionne

Le constructeur de classe ne peut pas être appelé sans 'new'

TypeError: le constructeur de classe MixinStrategy ne peut pas être appelé sans 'new'

React TypeError: Le constructeur de classe Fullpage ne peut pas être appelé sans 'new'

Kotlin: Le constructeur de la classe interne ne peut être appelé qu'avec le récepteur de la classe contenant

Classes de base virtuelles C ++: le constructeur de copie du parent n'est pas appelé

le constructeur de la classe dérivée ne peut pas être constexpr si la classe de base contient un membre du tableau

Le constructeur de la classe doit initialiser explicitement la classe de base

Le constructeur constexpr doit initialiser la classe de base directe (Visual Studio)

la nouvelle propriété ne peut pas être instanciée dans le constructeur de classe dérivée

ERREUR Postgresql / Timescaledb: la fonction de déclenchement obsolète ne doit pas être appelée

Le constructeur de copie pour la liste liée aux classes ne fonctionne pas

Comment le constructeur de sous-classe peut-il être appelé à partir de la classe parent?

Le constructeur de classe ne peut pas être invoqué sans 'new' - dactylographié avec commonjs

Le constructeur de déplacement doit être appelé par défaut

Le constructeur de déplacement de la classe contenant uniquement std :: map mobile ne fonctionne pas

L'appel de fonction Mockito n'est pas capable de simuler présent dans le constructeur de la classe cible

Pourquoi le crochet rond ne peut-il pas être correctement considéré comme un appel de constructeur?

compter le nombre de membres dans la table ne doit pas être supérieur à un

Laravel ne peut pas définir la variable de classe dans le constructeur

Entity Framework: pourquoi le type de collection de la classe d'entité doit être instancié dans le constructeur par défaut?

Une erreur "L'appel au constructeur de '' est ambigu", bien que les paramètres du constructeur de la classe ne se ressemblent pas?

Erreurs du constructeur de classe de base d'appel du constructeur de classe dérivé C ++

Le compilateur ne lançant pas d'erreur pour le constructeur de la classe a une erreur de syntaxe

Constructeur de copie de classe d'exception

Le constructeur de mouvement n'est pas appelé lorsque j'appelle explicitement le constructeur en tant que paramètre

Ne pas reconnaître le mot de passe dans la base de données PHP MYSQLi

Que signifie le message d'erreur "Le nom de la colonne ne doit pas être dupliqué" dans ce contexte

TOP Lista

CalienteEtiquetas

Archivo