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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.