Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    overload delete in una classe

    Salve a tutti ho una classe, che vorrei avesse un proprio delete:
    codice:
    class Foo
    {
    public:
    	Foo(void);
    	~Foo(void);
    	
    	void* operator new (size_t) throw (std::bad_alloc);
    	static void operator delete (void*);
    }
    il new funziona perfettamente, mentre il delete non viene richiamato.
    ossia se faccio:

    codice:
    Foo* foo = new Foo();
    delete foo;
    il new che è chiamato è quello definito per la classe, mentre il delete invocato è quello globale... dov'è che sbaglio?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perchè static ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    la definizione di questi metodi l'ho trovata cercando in rete... comunque ho provato sia con static che senza e il risultato è lo stesso, non viene richiamato...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Posta tutto il codice compilabile ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Gli operatori di gestione custom della memoria sono static per default (e non potrebbe essere altrimenti visto che quando sono invocati la classe non esiste).
    non viene richiamato
    Come fai a dirlo? Hai fatto un pò di debug? Hai messo una stampa a video nell'operatore delete della classe?
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.