C++ programming style
<p>I'm an old(but not too old) Java programmer, that decided to learn C++. But I have seen that much of C++ programming style, is... well, just damn ugly!</p>

<p>All that stuff of putting the class definition in a header file, and the methods in a different source file; Calling functions out of nowhere, instead of using methods <strong>inside classes</strong>; All that just seems... wrong!</p>

<p>So finally, is there any reason for me to continue with this massacre to the OOP, and anything that is good and righteous in programming, or can I just ignore that old-fashioned C++ conventions, and use my good Java programing style?</p>

<p>By the way I'm learning C++ because I want to do game programing.</p>

<p>Here is an example:</p>

<p>In an C++ website I found a windows implementation:</p>

<pre><code>class WinClass
{
public:
    WinClass (WNDPROC wndProc, char const * className, HINSTANCE hInst);
    void Register ()
    {
        ::RegisterClass (&amp;_class);
    }
private:
    WNDCLASS _class;
};
</code></pre>

<p>That class is located in a header file and the constructor:</p>

<pre><code>WinClass::WinClass (WNDPROC wndProc, char const * className, HINSTANCE hInst)
{
    _class.style = 0;
    _class.lpfnWndProc = wndProc;  // Window Procedure: mandatory
    _class.cbClsExtra = 0;
    _class.cbWndExtra = 0;
    _class.hInstance = hInst;           // owner of the class: mandatory
    _class.hIcon = 0;
    _class.hCursor = ::LoadCursor (0, IDC_ARROW); // optional
    _class.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1); // optional
    _class.lpszMenuName = 0;
    _class.lpszClassName = className;   // mandatory
}
</code></pre>

<p>Is located at a .cpp source file.</p>

<p>What I could just do is:</p>

<pre><code>class WinClass
{
   public:
   WinClass (WNDPROC wndProc, char const * className, HINSTANCE hInst)
   {
       _class.style = 0;
       _class.lpfnWndProc = wndProc;  // Window Procedure: mandatory
       _class.cbClsExtra = 0;
       _class.cbWndExtra = 0;
       _class.hInstance = hInst;           // owner of the class: mandatory
       _class.hIcon = 0;
       _class.hCursor = ::LoadCursor (0, IDC_ARROW); // optional
       _class.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1); // optional
       _class.lpszMenuName = 0;
       _class.lpszClassName = className;   // mandatory
}
    void Register ()
    {
        ::RegisterClass (&amp;_class);
    }
private:
    WNDCLASS _class;
};
</code></pre>

<p>And now the constructor is inside its class.</p>
