J'utilise une méthode pure virtuelle comme indiqué dans le code ci-dessous.Pourquoi cette méthode virtuelle pure ne compile-t-elle pas?
#include <iostream>
using namespace std;
class Advertisment
{
public:
vitual void price (int Uchrg, int no_of_unt) = 0;
{
}
};
class TVadvertisment : public Advertisment
{
public:
void price (int Uchrg, int no_of_unt)
{
int adPrice = Uchrg * no_of_unt;
cout << "Advertisment Price: " << adPrice;
}
};
int main()
{
TVadvertisment T;
T.price(1000, 60);
return 0;
}
Comme je sais une fonction virtuelle pure sera déclarée comme virtual void display() = 0;
. Mais le compilateur Code :: Blocks affiche une erreur à cause de cela = 0
. Sans cela, il compilera avec succès.
Et aussi je n'ai pas utilisé de pointeurs pour appeler des méthodes de classe dérivée.
S'il vous plaît [modifier] votre question pour fournir un [mcve] * dans la question elle-même *. –
_J'utilise Pure Virtual comme ci-dessous. ** Copier-coller ** tout le code pertinent dans la question elle-même. –
S'il vous plaît ne pas lier les images de texte, il suffit de copier et coller les informations pertinentes dans votre question. – Rook