title: OO Programming Question: Global Object
body: <p>I have probably a quite simple problem but I did not find a proper design decision yet.
  Basically, I have 4 different classes and each of those classes has more than 10 methods.</p>
  
  <p>Each of those classes should make use of the same TCP Socket; this object keeps a socket open to the server throughout program execution. My idea was to have the TCP obejct declared as "global" so that all other classes can use it:</p>
  
  <pre><code>classTCP TCPSocket;
  
  class classA  
  {  
      private:   
      public:   
      classA();  
      ...   
  };    
  
  class classB  
  {  
      private:   
      public:   
      classB();  
      ...   
  };    
  </code></pre>
  
  <p>Unfortunately, when declaring it like this my C++ compiler gives me an error message that some initialized data is written in the executable (???). So I am wondering if there is any other way I could declare this TCP object so that it is available for ALL the other classes and its methods? </p>
  
  <p>Many thanks!</p>