title: C++ Default values in functions?
body: <p>How exactly do default values in functions work? My question pertains to this example:</p>
  
  <pre><code>int func(int number, std::string name = "None", int anotherNumber);
  
  ..
  
  int func(int number, std::string name, int anotherNumber){
      ...
  }
  
  func(1, 2);
  ^Error, name is NULL yet we've defined a default value?
  </code></pre>
  
  <p>The compiler gives an error complaining that the argument was NULL and should not be. Yet I've defined a default value for it.</p>
  
  <p>Why is this?</p>