从.h文件中删除已编译的方法及其后果

Anz*_*rio 0 c++ header-files

我有一个一直存在的二进制文件.它有一个C级,它一直存在.我们必须向C类引入一个新的方法M,但我们只希望一些用户知道这种方法M的存在.

通过从.h文件中删除这样的方法,我们可以介绍哪个问题?这种方法是否会向后兼容?

编辑:我们实际上并不关心是否有办法找到方法.我们只想确保只有人知道他们在做什么,才能使用它.

Ale*_*lli 7

对于大多数C++编译器:如果方法是虚拟的,那么你将遇到严重问题(vtable将全部搞砸); 如果这个方法不是虚拟的,你不应该是(但是一些聪明的用户会通过"默默无闻"来推断出你想要隐藏的东西的存在,并想方设法使用你宁愿隐藏的方法 - - 但这是另一个故事;-).


Bri*_*ndy 6

一种更安全的方法是简单地创建一个派生类,并仅将某个人的.h给予某些人.