<分区>
我在共享库中有一个名为 AMFactory 的类。这个共享库被许多用户应用程序使用。现在我想在我的类中添加一个新的私有(private)成员变量。这会破坏二进制兼容性吗?如果它坏了,那么它有破解方法吗?就我而言,我不希望重新编译用户应用程序。下面是我的类 [AMFactory] 及其基类 [Factory] 的片段。
namespace CF {
class CF_EXPORT Factory {
public:
virtual ~Factory();
virtual bool registerManager(const std::string &_interface,
const Id_t &_id) = 0;
virtual bool unregisterManager(const std::string &_interface,
const Id_t &_id) = 0;
};
}
namespace CF {
namespace AM {
class AMFactory : public CF::Factory {
public:
CF_EXPORT static std::shared_ptr<AMFactory> get();
CF_EXPORT AMFactory();
CF_EXPORT virtual ~AMFactory();
CF_EXPORT bool registerManager(const std::string &_interface,
const Id_t &_id);
CF_EXPORT bool unregisterManager(const std::string &_interface,
const Id_t &_id);
private:
CF_EXPORT bool registerManager(std::shared_ptr<AMManager>);
CF_EXPORT bool unregisterManager(std::shared_ptr<AMManager>);
static std::shared_ptr<AMFactory> theFactory;
ServicesMap services_;
};
}
}