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

时间:2009-07-15 03:30:53

标签: c++ header-files

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

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

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

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:6)

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