title: Why does default-initialization of reference type member result in compiler warning?
body: <p>I have the following code:</p>
  <pre><code>class A {
   public:
    A() { }
  };
  
  class B {
   private:
    const A &amp;a;
  
   public:
    B() : a() { }
    B(const A &amp;ina) : a(ina) { }
  };
  </code></pre>
  <p>Compiling results in the following:</p>
  <blockquote>
  <p>ab.cpp: In constructor 'B::B()':</p>
  <p>ab.cpp:11: warning: default-initialization of 'const A&amp; B::a', which has reference type</p>
  </blockquote>
  <p>Why does this result in a warning and how do I fix it?</p>