我有一个库文件头(我无法触及的库)。但我需要在实例化中包含更多功能。我怎么能这样做?
class AA: public QObject
{
public:
void AA(); //<-- I need to add some more functionality to this
}
我知道,唯一的方法是,如果可以将AA子类化为具有相同名称AA的新类,那么从主程序中,希望使用第二个。但我不认为这是可能的。
答案 0 :(得分:1)
对于已编译的代码(您没有源代码),如果不经过特殊处理(使用汇编语言修补内存),则无法拦截它。这假设QObject没有一些特殊的机制可以让你“挂钩”构造函数。
对于您可以控制的代码,您可以简单地将AA子类化,并在子类的构造函数中提供自己的功能。