Flipping a "private:" to "public:" has no effect on the binary compatibility.
That's not the case on Windows. The access qualifier is part of the mangled name. https://en.wikiversity.org/wiki/Visual_C%2B%2B_name_mangling...
Of course you can get around if you really, really want to. But I think this subthread is starting to split hairs.
Flipping a "private:" to "public:" has no effect on the binary compatibility.