Функция C ++ может возвращать разные векторы на основе переданного параметра, но я получаю предупреждение компилятора - PullRequest
0 голосов
/ 05 марта 2020

У меня есть такая функция:

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

Я получаю предупреждение компилятора "функция должна возвращать значение". Должен ли я просто игнорировать это или есть способ устранить это? Если возвращаемое значение было стандартным типом данных вместо вектора, я знаю ответ. Vector1 и Vector2 являются членами данных одного класса. ТИА, Фред Эммерих

1 Ответ

3 голосов
/ 05 марта 2020

Ваша функция не возвращает значение, когда 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;
}

Где m_vector1 и m_vector2 - переменные-члены вашего класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...