J'ai essayé de mettre en œuvre ce:Test :: opérateur new
namespace Test
{
void* operator new(size_t s)
{
return malloc(s);
}
}
Mais g ++ (4.3.1) dit:
void* Test::operator new(size_t)’ may not be declared within a namespace
Est-ce que je fais quelque chose de mal?
Si oui, est-il possible de surcharger le nouvel opérateur à utiliser dans mes classes? Je ne veux pas créer une classe de base et faire en sorte que toutes mes classes héritent de cette classe de base.
Le diagnostic est bizarre, car l'opérateur new * peut * être déclaré dans l'espace de noms global. Mais seulement là :) –
donc vous dites que par la conception de la langue, je peux juste surcharger l'opérateur nouveau dans l'espace de noms global, non? – ebasconp
Par conception de langage, vous pouvez déclarer 'operator new' dans l'espace de noms global et en tant que membre d'une classe. – AnT