代码之家  ›  专栏  ›  技术社区  ›  Александр Щетнев

Qt Creator重构和c++模板

  •  1
  • Александр Щетнев  · 技术社区  · 7 年前

    我想弄清楚:有没有办法用c++模板类进行重构?我想快速插入基类或专用模板的虚拟函数。

    如果你的班级不够大,这不是问题。但是,当您有10个方法需要重写和专门化时,它就会变得常规且容易出错。

    例如,我有以下代码

    template <typename T>
    class MyTemplateInterface
    {
    public:
        virtual void DoWork() = 0;
    };
    

    然后我写代码

    template <typename T>
    class MyTemplateClass : public MyTemplateInterface<T>
    {
    public:
        MyTemplateClass() {}
    };
    

    我想得到的是

    template <typename T>
    class MyTemplateClass : public MyTemplateInterface<T>
    {
    public:
        MyTemplateClass() {}
        void DoWork() override
        {
    
        }
    };
    template<>
    void MyTemplateClass<int>::DoWork()
    {
        // specialized template
    }
    

    p、 对不起,我的英语不好

    1 回复  |  直到 7 年前
        1
  •  1
  •   Dusteh    7 年前

    如果您只是想让IDE生成适当的虚拟方法,那么可以在Qt Creator中实现。我不确定这个选项是哪个版本。我正在使用 Qt 4.1.0 .

    拥有指定的代码后,可以右键单击派生类名并选择 Refactor > Insert Virtual Functions of Base Classes 如下图所示。

    enter image description here

    然后,您可以选择不同的选项,选择是只在类内部还是外部生成声明或定义。

    希望这能回答你问题的一部分。然而,我不确定目前是否有半自动生成专业化的方法。