如何使用 QT 和 C++ 将字符串参数传递给函数

Posted

技术标签:

【中文标题】如何使用 QT 和 C++ 将字符串参数传递给函数【英文标题】:How to pass string arguments to a function using QT and C++ 【发布时间】:2012-04-23 18:47:50 【问题描述】:

当我在下面的代码中调用 getCount 函数时,QT 4.7.3 编译器给出了错误。构建错误

将 'cont Person' 作为 'int Person::getCount(const QString&) 的 'this' 参数传递会丢弃限定符

 bool Person::IsEligible(const QString& name)
 
      int count = 0;
      count = getCount(name);
 

 int Person::getCount(const QString& name)
 
  int k =0
  return k;
 

【问题讨论】:

【参考方案1】:

错误不是传递字符串参数的问题,而是你有一个const 人,例如:

const Person p1;
Person p2;
p1.IsEligible("whatever"); //Error   
p2.IsEligible("whatever"); //Fine because p2 isn't const

如果IsEligible 可以在const Persons 上调用,那么您可以说:

bool Person::IsEligible(const QString& name) const
 
      int count = 0;
      count = getCount(name);
 

(并更改您没有显示得太明显的相应声明),但我不能 100% 确定您打算这样做。

【讨论】:

感谢 awoodland,声明是 int getCount(const QString& name)。 bool IsEligible(const QString& name) const 这是一个公共插槽。我会按照你说的改变。

以上是关于如何使用 QT 和 C++ 将字符串参数传递给函数的主要内容,如果未能解决你的问题,请参考以下文章

C++:如何将变量作为参数传递给类构造函数

将 QObject 指针从 QML 对象传递给 C++

如何将右值引用参数传递给 C++ 中的模板 operator() 函数?

将主要参数传递给 gui 库的 init 函数

如何将 lambda 表达式作为参数传递给 c++ 模板

如何使用 GET 请求将参数传递给 AWS Lambda 函数?