我有这样的功能:
vector<double> MyClass::MyFunc(string Parm)
{
if(Parm=="A")
return Vector1
else if (Parm=="B")
return Vector2
}
我得到编译器警告“函数必须返回一个值”。我应该忽略这个还是有办法消除它?如果返回值是标准数据类型而不是向量,我知道答案。Vector1 和 Vector2 是同一类的数据成员。TIA,弗雷德·艾默里奇
时,您的函数不返回值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_vector1和m_vector2是你的类的成员变量。