C++ 插件类不应该有构造函数?

C++ 插件类不应该有构造函数?,c++,qt,c++11,qt5,C++,Qt,C++11,Qt5,在研究这个问题时,我注意到 插件类不应该有构造函数 这意味着它也不应该有一个解构师 如果它有一个构造函数,它什么时候被调用 插件类构造函数中应该放什么 插件接口中的virtualvoidinit()=0将替代构造函数吗 你需要一个构造函数吗?您正在实现一个没有构造函数的接口。如果需要某种初始化,那么可能需要一个init()来完成构造函数的工作。是这样吗?或者,插件中的任何类型的初始化都应该是不合适的设计?如果您真的需要初始化变量,那么这两个选项都是正确的,尽管我更喜欢使用构造函数。在我的例子中,

在研究这个问题时,我注意到

  • 插件类不应该有构造函数

  • 这意味着它也不应该有一个解构师

  • 如果它有一个构造函数,它什么时候被调用

  • 插件类构造函数中应该放什么

  • 插件接口中的
    virtualvoidinit()=0
    将替代构造函数吗


  • 你需要一个构造函数吗?您正在实现一个没有构造函数的接口。如果需要某种初始化,那么可能需要一个
    init()
    来完成构造函数的工作。是这样吗?或者,插件中的任何类型的初始化都应该是不合适的设计?如果您真的需要初始化变量,那么这两个选项都是正确的,尽管我更喜欢使用构造函数。在我的例子中,我不习惯在Qt插件中看到构造函数或成员变量,但我认为这取决于您的需求。静态加载插件时,我遇到了一些问题,其中构造函数中的事情似乎没有发生。我将其替换为
    init()
    方法,然后显式调用该方法,因此我得到了我所期望的结果。有趣的是,当动态加载插件时,同样的代码工作得很好。感谢分享“我不习惯在Qt插件中看到构造函数或成员变量”,我才刚刚开始。