title: Constructor is being invoked twice
body: <p>In code:</p>
  
  <pre><code>//file main.cpp
  LINT a = "12";
  LINT b = 3;
  a = "3";//WHY THIS LINE INVOKES CTOR?
  
  
  std::string t = "1";
  //LINT a = t;//Err NO SUITABLE CONV FROM STRING TO LINT. Shouldn't ctor do it?
  
  //file LINT.h
  #pragma once
  #include "LINT_rep.h"
  class LINT
  {
  private:
      typedef LINT_rep value_type;
      const value_type* my_data_;
      template&lt;class T&gt;
      void init_(const T&amp;);
  public:
      LINT(const char* = 0);
      LINT(const std::string&amp;);
      LINT(const LINT&amp;);
      LINT(const long_long&amp;);
      LINT&amp; operator=(const LINT&amp;);
      virtual ~LINT(void);
  
      LINT operator+()const;               //DONE
      LINT operator+(const LINT&amp;)const;//DONE
      LINT operator-()const;               //DONE
      LINT operator-(const LINT&amp;)const;//DONE
      LINT operator*(const LINT&amp;)const;//DONE
      LINT operator/(const LINT&amp;)const;///WAITS FOR APPROVAL
  
      LINT&amp; operator+=(const LINT&amp;);//DONE
      LINT&amp; operator-=(const LINT&amp;);//DONE
      LINT&amp; operator*=(const LINT&amp;);//DONE
      LINT operator/=(const LINT&amp;);///WAITS FOR APPROVAL
  };
  </code></pre>
  
  <p>in line number 3 instead of assignment optor ctor is invoked. Why? I'm willing to uppload entire solution on some server otherwise it's hard to put everything in here. I can also upload video file. Another thing is that when I implement this assignment optor I'm getting an error that this optor is already in obj file? What's going on?</p>