Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

And you can add yourself a public interface even if all you have is a compiled library, and header files.

Flipping a "private:" to "public:" has no effect on the binary compatibility.



> 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...


It's still an honor system. There's a way to generate code that will call the "private" or "protected" data/function even if it violates what's specified in the headers.


That shouldn't prevent the subversion of data members or inline functions, or the ability to add your own member functions to the class.


Because Badge is a template, this will produce a linker error (duplicate symbols).

Of course you can get around if you really, really want to. But I think this subthread is starting to split hairs.


It can change the "POD for the purpose of layout" status of a class on Itanium. It can change layout.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: