class A1{
public void op(){cout << "A1";}
};
class B1 : public A1{
public void op(){cout << "B1";}
};
Semble valide pour moi, mais le compilateur de rapports:Comment corriger le code C++ ci-dessous?
erreur, prévu un ':' à void
class A1{
public void op(){cout << "A1";}
};
class B1 : public A1{
public void op(){cout << "B1";}
};
Semble valide pour moi, mais le compilateur de rapports:Comment corriger le code C++ ci-dessous?
erreur, prévu un ':' à void
class A1 { public: void op() {cout << "A1";}};
class B1 : public A1 { public: void op() {cout << "B1"; }};
PS. Aussi peut-être voulez-vous utiliser des méthodes virtuelles?
class A1
{
public:
virtual void op(){cout << "A1";}
};
class B1 : public A1
{
public:
void op(){cout << "B1";}
};
Prenez garde à ajouter le mot-clé virtual
, sinon, vous ne surchargez pas void op();
en B
Colons après les étiquettes publiques.
class A1{
public: void op(){cout << "A1";}
};
class B1 : public A1{
public: void op(){cout << "B1";}
};
:) C++ a une syntaxe différente de C#. En C++, il est moins bavard, de sorte que vous pouvez faire:
class A1{
public:
void a(){cout << "x";}
void b(){cout << "x";}
void c(){cout << "x";}
};
au lieu d'avoir à mettre public devant toutes les méthodes publiques.
Un destructeur virtuel est également requis pour 'A1' – Naveen
@Naveen: oui, vous devez ajouter un destructeur virtuel mais ce n'est pas strictement nécessaire dans ce cas très particulier puisqu'il n'y a pas de membre de données. –
Pour répondre à la question, nous pourrions insister sur la réponse de Visage: des points-virgules sont nécessaires après le mot-clé 'public'. Le destructeur virtuel manquant ne sera impliqué qu'en considérant les fuites de mémoire, pas la compilation. Il devrait cependant générer des avertissements. – jopasserat