Qt-Creator重构与c++;模板 我想知道:有什么方法可以用C++模板类重构吗?我想快速插入基类或专用模板的虚拟函数
如果你的班级不够大,那没问题。但是,当您有10个方法需要重写和专门化时,它就会变成例行程序,并且容易出错 例如,我有这个代码Qt-Creator重构与c++;模板 我想知道:有什么方法可以用C++模板类重构吗?我想快速插入基类或专用模板的虚拟函数,c++,qt,templates,qt-creator,C++,Qt,Templates,Qt Creator,如果你的班级不够大,那没问题。但是,当您有10个方法需要重写和专门化时,它就会变成例行程序,并且容易出错 例如,我有这个代码 template <typename T> class MyTemplateInterface { public: virtual void DoWork() = 0; }; 模板 类MyTemplateInterface { 公众: 虚空DoWork()=0; }; 而不是我写的代码 template <typename T> cla
template <typename T>
class MyTemplateInterface
{
public:
virtual void DoWork() = 0;
};
模板
类MyTemplateInterface
{
公众:
虚空DoWork()=0;
};
而不是我写的代码
template <typename T>
class MyTemplateClass : public MyTemplateInterface<T>
{
public:
MyTemplateClass() {}
};
模板
类MyTemplateClass:公共MyTemplateInterface
{
公众:
MyTemplateClass(){}
};
我想得到的是
template <typename T>
class MyTemplateClass : public MyTemplateInterface<T>
{
public:
MyTemplateClass() {}
void DoWork() override
{
}
};
template<>
void MyTemplateClass<int>::DoWork()
{
// specialized template
}
模板
类MyTemplateClass:公共MyTemplateInterface
{
公众:
MyTemplateClass(){}
void DoWork()重写
{
}
};
模板
void MyTemplateClass::DoWork()
{
//专用模板
}
p、 很抱歉我的英语不好如果您只是想让IDE生成正确的虚拟方法,这在Qt Creator中是可能的。我不确定该选项的可用版本。我使用的是
qt4.1.0
拥有指定的代码后,您可以右键单击派生类名并选择重构>插入基类的虚拟函数
,如下图所示
然后,您可以选择不同的选项,选择是只在类内部还是外部生成声明或定义
希望这能回答你问题的一部分。但是,我不确定目前是否有半自动生成专业化的方法。谢谢您的回答!文章说Qt不支持模板,但我使用纯C++代码。所以我可以假设,如果Qt不支持它,Qt创建者也不会支持它吗?也许有另一个简单的方法来解决这个问题?谢谢!我使用的是QtCreator 4.3.1,没有带模板的“插入基类的虚拟函数”,但我积极地将该功能用于不带模板的类。当然,这是我问题的部分答案。