0

我有一个库的头文件(我无法触摸的库)。但我需要在实例化中包含更多功能。我怎样才能做到这一点?

class AA: public QObject
{
    public:
        void AA(); //<-- I need to add some more functionality to this
}

我知道,唯一的方法是是否可以将 AA 子类化为具有相同名称 AA 的新类,以便从主程序中,希望使用第二个。但我认为这是不可能的。

4

1 回答 1

1

对于已经编译好的代码(你没有源代码),如果不通过特殊手段(使用汇编语言修补内存)就无法截获它。这是假设 QObject 没有一些允许您“挂钩”构造函数的特殊机制。

对于您可以控制的代码,您可以简单地将 AA 子类化并在子类的构造函数中提供您自己的功能。

于 2013-07-12T15:50:47.610 回答