De retour de pointeur de classe à partir d'une fonction

Je ne sais pas quel est le problème avec ce (gardez à l'esprit que je suis un peu sorta nouvelle C++)

J'ai cette classe:

Foo
{
  string name;
  public:
     SetName(string);
}
string Foo::SetName(string name)
{
  this->name = name;
  return this->name;
};
//////////////////////////////////////////////
//This  is where I am trying to return a Foo pointer from this global function:

Foo * ReturnFooPointer()
{
  Foo foo;
  Foo * foo_ptr;
  foo_ptr = &foo;
  return foo_ptr;
}

Au moment de la compilation, il compile très bien. Cependant au moment de l'exécution, il lève une exception d'exécution(une sorte de violation d'accès)

Ce que je fais mal?

Ce code ne peut pas compiler. Il manque le mot-clé class sur le Foo.

OriginalL'auteur theKing | 2009-04-21