title: Is this ctor / use of ctor correct?
body: <pre><code>    SingleMonitorInfo::SingleMonitorInfo(MONITORINFOEX* lpMONITORINFOEX)
      :rcMonitorArea(lpMONITORINFOEX-&gt;rcMonitor),
      rcWorkArea(lpMONITORINFOEX-&gt;rcWork),
      dwStatusFlags(lpMONITORINFOEX-&gt;dwFlags),
      szDeviceName({ '\0' }),
      szMonitorName({ '\0' }),
      szMonitorDescription({ '\0' }),
      lpPixelArray(NULL)
  {
      wcscpy_s(SingleMonitorInfo::szDeviceName, 33, lpMONITORINFOEX-&gt;szDevice);
      SingleMonitorInfo::setStringMonitorNameAndDescription(lpMONITORINFOEX-&gt;szDevice);
  }
  </code></pre>
  
  <p>I am rewriting my program using member initialisation lists, I hope the code above is correct, although this is the first time I've used member initialisation lists.</p>
  
  <p>I realised that later on, in a parent of this class: I was creating another copy, of a copy to create (Instantiate I think) the list. When all I think I needed was:</p>
  
  <pre><code>for (int i = 0; i &lt; lpMonitorList-&gt;iMaximumSize; i++)
      {
          smiMonitorList[i] = SingleMonitorInfo(&amp;lpMonitorList-&gt;infoArray[i]);
      }
  </code></pre>
  
  <p>It seems too simple and prone to verification errors, would this example work, and how to I do simple checks in the member initialisation? From what I understand the member initialisation list can do logical if statements ( X ? A : B ), though I cannot fathom how I would verify input.</p>
  
  <p>EDIT: I have a default ctor and overloaded for MONITORINFOEX</p>
  
  <pre><code>SingleMonitorInfo::SingleMonitorInfo()
  :dMaxPercentDifference(1), // Double
  iCheckTaskbar(1), // int
  rcMonitorArea(RECT{ 0, 0, 0, 0 }), // RECT
  rcWorkArea(RECT{ 0, 0, 0, 0 }), // RECT
  dwStatusFlags(DWORD(0x00000000)), // DWORD
  dwCapabilitiesFlags(DWORD(0x00000000)), // DWORD
  szDeviceName({ '\0' }), // String (WCHAR)
  szMonitorName({ '\0' }), // String (WCHAR)
  szMonitorDescription({ '\0' }), // String (WCHAR)
  lpPixelArray(NULL) // unsigned char*
  </code></pre>
  
  <p>{</p>
  
  <p>}</p>