title: C++ fstream write/read into object
body: <p>I have these C++ headers</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include "istruttore.h"
  #define max 30
  
  using namespace std;
  //==============================================================================
  class corso
  {
    friend ostream&amp; operator &lt;&lt; (ostream&amp; out, const corso&amp; corsoapp);
    friend istream&amp; operator &gt;&gt; (istream&amp; in, corso&amp; corso);
  
    public:
         int getid_corso();
         char* getnomecorso();
         double getcosto();
         char* getdurata(); 
         int getistruttore_id();
         char* getistruttore_name();
         char* getistruttore_surname();
         void setid_corso(int course);
         void setnomecorso(char namecourse[]);
         void setcosto (double pay);
         void setdurata(char duration[]); 
         void set_istruttore(char name[], char surname[], int id, int id_corso);
         corso();
         ~corso();
         istruttore* ist;
     private:
         int id_corso;
         char nomecorso[max];
         double costo;
         char durata[max];
      };
  
  
  
  #include &lt;iostream&gt;
  
  #define max 30
  
  using namespace std;
  //==============================================================================
  class istruttore {
  friend ostream&amp; operator &lt;&lt;(ostream&amp; out, const istruttore&amp; istruttoreapp);
  friend istream&amp; operator &gt;&gt;(istream&amp; in, istruttore&amp; istruttore);
  
  public:
   int getid_istruttore();
   char* getnome();
   char* getcognome();
   int getid_corso();
   void setid_istruttore(int idistruttore);
   void setnome(char name[]);
   void setcognome(char surname[]);
   void setid_corso(int idcorso);
   istruttore();
   ~istruttore();
  protected:
   int id_istruttore;
   char nome[max];
   char cognome[max];
   int id_corso;
    };
  </code></pre>
  
  <p>I have implemented all methods for both headers. I want to write a binary file in this way:</p>
  
  <pre><code>fcliente.write(reinterpret_cast&lt;const char*&gt;(&amp;tmpcorso),sizeof(tmpcorso));
  </code></pre>
  
  <p>where <code>tempcorso</code> is an object of type corso. Writing is ok, but reading isn't ok.
  I try to read the same binary file with this code</p>
  
  <pre><code>fcorso.read(reinterpret_cast&lt;char*&gt;(&amp;tmpcorso),sizeof(tmpcorso))
  </code></pre>
  
  <p>but when I look at the value of <code>istruttore</code> in <code>tmpcorso</code> the value isn't ok. How do I fix it?</p>