Две функции делают одно и то же, псевдоним? - PullRequest
2 голосов
/ 24 октября 2010

В производном классе у меня есть функция valu () (это виртуальная в базовом классе). В этом производном классе у меня также есть функция set_value () и, следовательно, я также хочу get_value (). get_value () должна возвращать ту же самую вещь, что иvalu ()

Можно ли в любом случае сказать, что вызов get_value является вызовом для оценки ()? С каким-то псевдонимом?

Я не знаю, существует ли это или как оно будет называться, я искал и ничего не нашел.

Может быть, я должен сделать:

inline double Variable::get_value() const
{
    return evaluate();
}

1 Ответ

3 голосов
/ 24 октября 2010

Нет, в C ++ нет псевдонимов, которые вы ищете. Конечно, это так:

double Variable::get_value() const
{
    return evaluate();
}

С другой стороны, вы можете сделать get_value() функцию в суперклассе и позволить ей делать то же самое, если это ваше требование к дизайну.


Еще одним преимуществом реализации get_value() таким способом голыми руками является предоставление возможности задействовать дополнительную логику. В случае, если ваш evaluate() будет получать все больше процессорного времени, вы можете внедрить простое кэширование на месте.

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