首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >templates重构和c++模板

templates重构和c++模板
EN

Stack Overflow用户
提问于 2017-11-28 10:57:32
回答 1查看 423关注 0票数 1

我想弄清楚:有什么方法可以用c++模板类进行重构吗?我想快速插入基类或专门模板的虚拟函数。

如果你的班级不够大,那就没问题了。但是,当您有10个需要重写和专门化的方法时,它就会变成例行公事,并且容易出错。

例如,我有这样的代码

代码语言:javascript
复制
template <typename T>
class MyTemplateInterface
{
public:
    virtual void DoWork() = 0;
};

而不是我写的代码

代码语言:javascript
复制
template <typename T>
class MyTemplateClass : public MyTemplateInterface<T>
{
public:
    MyTemplateClass() {}
};

我想得到的是

代码语言:javascript
复制
template <typename T>
class MyTemplateClass : public MyTemplateInterface<T>
{
public:
    MyTemplateClass() {}
    void DoWork() override
    {

    }
};
template<>
void MyTemplateClass<int>::DoWork()
{
    // specialized template
}

附注:抱歉,我的英语坏了

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-28 13:18:37

如果您只是想让IDE生成适当的虚拟方法,这在Qt中是可能的。我不知道这个选项是哪个版本的。我在用Qt 4.1.0

有了您指定的代码,您可以右键单击派生类名,然后在下面的图像中选择Refactor > Insert Virtual Functions of Base Classes

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47529863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档