How does juce_FileBasedDocument inherit from Change Broadcaster without including any header files in either the .h file or the .cpp file? What black magic is going on here?

Because that file is NOT compiled (alone). It is compiled amalgamated in the module.

< https://github.com/julianstorer/JUCE/blob/master/modules/juce_gui_extra/juce_gui_extra.cpp#L77 >.

1 Like