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 内部或外部生成声明或定义。
这有望回答您的部分问题。但是我不确定目前是否有半自动生成专业化的方法。
我想知道:有什么方法可以用 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 内部或外部生成声明或定义。
这有望回答您的部分问题。但是我不确定目前是否有半自动生成专业化的方法。