我想弄清楚:有什么方法可以用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
}附注:抱歉,我的英语坏了
发布于 2017-11-28 13:18:37
如果您只是想让IDE生成适当的虚拟方法,这在Qt中是可能的。我不知道这个选项是哪个版本的。我在用Qt 4.1.0。
有了您指定的代码,您可以右键单击派生类名,然后在下面的图像中选择Refactor > Insert Virtual Functions of Base Classes。

然后,您可以选择不同的选项,以确定您是否只希望在类内部或外部生成声明或定义。
希望这能回答你问题的一部分。然而,我不确定目前是否有一种半自动的专业化生成方法。
https://stackoverflow.com/questions/47529863
复制相似问题