L'initialisation d'un objet avec et sans opérateur new

Si j'ai une classe Rectangle

class Rectangle{

private:
    double width;
    double height;


public:
void    Set(double w , double l){
    width   = w;
    height  = l;
}
};

et je decleare un objet tel:

Rectangle *Obj;

et puis essayez d'initialiser ses propriétés:

Obj->Set(3,5);

le compilateur au moment de l'exécution: The variable 'Obj' is being used without being initialized.

Le problème peut être résolu par l':

Rectangle *Obj=new Rectangle;

Je voudrais poser des questions sur la raison! Et pourquoi le compilateur n'affiche pas de message d'erreur à la compilation le temps?

OriginalL'auteur Aan | 2011-11-23