title: Initializing an object with and without new operator
body: <p>If I have a class <code>Rectangle</code></p>
  
  <pre><code>class Rectangle{
  
  private:
      double width;
      double height;
  
  
  public:
  void    Set(double w , double l){
      width   = w;
      height  = l;
  }
  };
  </code></pre>
  
  <p>and I decleare an object such:</p>
  
  <pre><code>Rectangle *Obj;
  </code></pre>
  
  <p>and then try to initialize its properties:</p>
  
  <pre><code>Obj-&gt;Set(3,5);
  </code></pre>
  
  <p>the compiler shows at run-time: <code>The variable 'Obj' is being used without being initialized.</code></p>
  
  <p>The problem can be solved by:</p>
  
  <pre><code>Rectangle *Obj=new Rectangle;
  </code></pre>
  
  <p>I would ask about the reason! And why the compiler doesn't show any error at compiling time? </p>