pointeur en paramètre de fonction et appel avec new
Bonjour,
prenons le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| struct Dum
{
// des choses ici, mais disons que Dum est un type complexe (non POD)
};
class Foo
{
public:
void AddDum( Dum * d )
{
dums.push_back(d);
}
private:
vector<Dum*> dums;
};
int main()
{
Foo foo;
foo.AddDum( new Dum() ); // <----------------------------- ici
// ...
} |
je ne comprend pas ce qu'il se passe lors de l'appel à Adddum (avant-dernière ligne du code). Il y a création d'une temporaire non nommée je crois, mais y a-t-il une copie? Y a-t-il une fuite mémoire? Est-ce que quelqu'un en sait plus?