Delete avec polymorphisme
Bonjour,
Depuis maintenant je me pose une question bete : pourquoi je ne peux pas delete un pointer sur une instance de classe dans ce cas :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| class A
{
public: A() { cout << "A()\n"; }
~A() { cout << "~A()\n"; }
};
class B : public A
{
public:
B() { cout << "B()\n"; }
virtual ~B() { cout << "~B()\n"; }
};
int nUsers = 0; // Number of clients
void fn(A *a)
{
cout << "tcho\n";
delete a;
}
int main()
{
B *b = new B;
fn(b);
} |
N'y a-t-il pas un moyen de passez ce probleme la ? J'ai pense que peut-etre implementer un operator delete() pourrait m'aider ?
Merci pour vos reponses.