Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个库的头文件(我无法触摸的库)。但我需要在实例化中包含更多功能。我怎样才能做到这一点?
class AA: public QObject { public: void AA(); //<-- I need to add some more functionality to this }
我知道,唯一的方法是是否可以将 AA 子类化为具有相同名称 AA 的新类,以便从主程序中,希望使用第二个。但我认为这是不可能的。
对于已经编译好的代码(你没有源代码),如果不通过特殊手段(使用汇编语言修补内存)就无法截获它。这是假设 QObject 没有一些允许您“挂钩”构造函数的特殊机制。
对于您可以控制的代码,您可以简单地将 AA 子类化并在子类的构造函数中提供您自己的功能。