开发中遇到,两个不同类到时都有name,fontSize等属性,就可以利用模板函数来简化代码。
template <class Type>
void setTypeFontSize(Type type, int currentIndex)
{
if (type->metaObject()->className() == QStringLiteral("CustomWidget")) {
static_cast<CustomWidget*>(type)->setFontSize(currentIndex);
} else if (type->metaObject()->className() == QStringLiteral("CustomBtn")) {
static_cast<CustomBtn*>(type)->setFontSize(currentIndex);
}
}
template <class Type>
void setTypeEnable(Type type, bool enable)
{
if (type->metaObject()->className() == QStringLiteral("CustomWidget")) {
static_cast<CustomWidget*>(type)->setEnable(enable);
} else if (type->metaObject()->className() == QStringLiteral("CustomBtn")) {
static_cast<CustomBtn*>(type)->setEnable(enable);
}
}
就此做一个简单的记录,模板函数的用法非常灵活。