title: Why does Qt default signals to be public?
body: <p>I've realized today that if you have 3 classes like so:</p>
  
  <p>class 1 has a signal</p>
  
  <p>class 2 has a signal that connects to class 3's private slot</p>
  
  <p>class 3 has a private slot and class 2 is a friend of class 3</p>
  
  <p>If I connect class 1's signal to class 2's signal, I can essentially call class 3's private slot by emitting class 1's signal.</p>
  
  <p>If signals were private or protected this wouldn't occur.</p>
  
  <p>There's another scenario where this can be bad, imagine we have this setup:</p>
  
  <p>class 1 has a signal</p>
  
  <p>class 2 has a signal that connects into it's base classes protected slot</p>
  
  <p>class 3 is the base class with a protected slot</p>
  
  <p>Doesn't this break Object Oriented Principles?</p>