Qt Creator 重构和 C++ 模板

Qt Creator refactoring and c++ templates

我想知道:有什么方法可以用 c++ 模板 classes 进行重构吗?我想快速插入基础 class 或专用模板的虚函数。

如果您的 class 不够大也没关系。但是,当您有 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.s。抱歉我的英语不好

如果您只是想 IDE 生成适当的虚拟方法,这在 Qt Creator 中是可能的。我不确定此选项从哪个版本开始可用。我正在使用 Qt 4.1.0.

有了您指定的代码,您可以右键单击派生的 class 名称和 select Refactor > Insert Virtual Functions of Base Classes,如下图所示。

然后您可以 select 不同的选项来决定是否只在 class 内部或外部生成声明或定义。

这有望回答您的部分问题。但是我不确定目前是否有半自动生成专业化的方法。