0

我有很多二传手。有没有一种通用的方法来获取每个 setter 的第一个参数而不拼写每个不同 setter 参数的名称?例如:

void
Class::setSelectedEntryIndex(int newSelectedEntryIndex) {
    m_log(ExEr) << "first arg: " << newSelectedEntryIndex << std::endl;
    m_selectedEntryIndex = newSelectedEntryIndex;
    emit selectedEntryIndexChanged();
}

replaced with:

void
Class::setSelectedEntryIndex(int newSelectedEntryIndex) {
    m_log(ExEr) << "first arg: " << this->firstArg << std::endl;   // Change here
    m_selectedEntryIndex = newSelectedEntryIndex;
    emit selectedEntryIndexChanged();
}

?

4

1 回答 1

1

不是你提议的方式。您可以将参数列表更改为一个,std::tuple但由于您正在处理设置器,我假设您的参数列表每个都有一个参数。

你最好的自动化方法(我认为你想要做的)是在你的函数定义中简单地命名所有参数。您仍然可以在声明中为它们提供描述性名称,因为无论如何 C++ 并不关心这一点。

。H

class MyClass {
  void setTemperature(int newTemperature);
  // or
  void setTemperature(int); // <- people sometimes find this less self-documentative
};

.cpp

void MyClass::setTemperature(int param1) {
  m_log(ExEr) << "first arg: **" << param1 << std::endl;
  /* ... */
}
于 2012-08-27T19:15:55.580 回答