c++ - 当我不知道类型时如何将参数传递给函数

标签 c++ qt

我创建了一个函数,用于填充 QTableWidget 中的单元格。对于这个函数,我将行和对象作为参数传递。这是我的函数的原型(prototype):

void remplirCaseDonnee(int myData, int row);

我的问题是:我的参数 int myData 现在可以是 intboolenum.

我该怎么办?当然有制作 3 个函数的解决方案,但这只是大量代码的复制粘贴。

最佳答案

另一种可能性是对 myData 使用 QVariant,例如:

void remplirCaseDonnee(QVariant const& myData, int row)
{
  switch (myData.type())
  {
    case QVariant::Int:
    case QVariant::String:
    // ...
  }
}

并且不要忘记可以将 boostQt 一起使用,因此 Boost.AnyBoost.Variant 也可以使用。

关于c++ - 当我不知道类型时如何将参数传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24604344/

相关文章:

c++ - 这个结构是什么意思 : bool operator == (const a& other) const;?

c++ - 如何实现从枚举值到类模板的隐式转换

c++ - 从 Qt 资源文件加载 ico 时出现问题

c++ - QAbstractListModel : update role names

c++ - 从 qml 编辑 QObject 属性

c++ - QsortFilterProxyModel 删除多列

c++ - 为什么在 Emacs 中使用 CEDET 完成代码如此缓慢?

c++ - 在构造函数中为类名添加和省略模板参数之间的区别

c++ - 检测移除打开的串口设备(Qt/Windows)

c++ - QTableView中的Qt隐藏列