Use Forward Declaration in Header Files, then include the headers in the CPP files. That can often avoid the dependency issue, if the files have to include each other.
Forward Declaration only works if you’re NOT accessing the functions/variables of the class in that file, all it does is tell the compiler “at some point, this will exist, so trust me” - but the compiler will throw an error if you try to access it before you’ve told it what it is.
Having an overarching class that includes all headers can get around this and sometimes it’s the only way, but the biggest issue with it is that you end up with bloated binaries because every file is including every other header, so it’s not the ideal workaround.