-3

我有这样的功能:

vector<double> MyClass::MyFunc(string Parm)
{
if(Parm=="A")
  return Vector1
else if (Parm=="B")
  return Vector2
}

我得到编译器警告“函数必须返回一个值”。我应该忽略这个还是有办法消除它?如果返回值是标准数据类型而不是向量,我知道答案。Vector1 和 Vector2 是同一类的数据成员。TIA,弗雷德·艾默里奇

4

1 回答 1

3

时,您的函数不返回值Param != A && param != B

您可以通过在最后一行添加else return VectorX或来解决此问题。return VectorX

PS尝试优化你的if语句和函数,我宁愿你的函数如下:

vector<double>* MyClass::MyFunc(const string& param)
{
if(!strcmp(param,"A")) return &m_vector1;
else if (!strcmp(param,"B")) return &m_vector2;

return nullptr;
}

Wherem_vector1m_vector2是你的类的成员变量。

于 2020-03-05T15:30:22.293 回答