我创建了一个函数,用于填充 QTableWidget 中的单元格。对于这个函数,我将行和对象
作为参数传递。这是我的函数的原型(prototype):
void remplirCaseDonnee(int myData, int row);
我的问题是:我的参数 int myData
现在可以是 int
、bool
或 enum
.
我该怎么办?当然有制作 3 个函数的解决方案,但这只是大量代码的复制粘贴。
最佳答案
另一种可能性是对 myData 使用 QVariant
,例如:
void remplirCaseDonnee(QVariant const& myData, int row)
{
switch (myData.type())
{
case QVariant::Int:
case QVariant::String:
// ...
}
}
并且不要忘记可以将 boost
与 Qt
一起使用,因此 Boost.Any
和 Boost.Variant
也可以使用。
关于c++ - 当我不知道类型时如何将参数传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24604344/