title: Convention of using underscores in C++ class member names
body: <p>The large majority of my programming knowledge is self-taught, so I was never taught proper design patterns, conventions, and so on and so forth.</p>
  
  <p>I've been digging through a lot of my company's software libraries lately, and I notice that a lot of class data members have underscores in their names.</p>
  
  <p>For example:</p>
  
  <pre><code>class Image
  {
  // various things
  
  // data members
  char* _data;
  ImageSettings* _imageSettings;
  // (and so on...)
  };
  </code></pre>
  
  <p>I see this in a lot of online example code as well. Is there a reason behind this convention? Sorry I couldn't provide better examples, I'm really trying to remember off the top of my head, but I see it a lot.</p>
  
  <p>I am aware of Hungarian notation, but I am trying to get a handle on all of the other conventions used for C++ OOP programming.</p>