булева функция использует в C ++ - PullRequest
0 голосов
/ 20 апреля 2020
#include <iostream>
#include<string>

bool findG( const std::string name)
{
    return name.length() >= 3 && name[0] == 'H'; 
}

bool NotfindG( const std::string name)
{
    return !findG(name); 
}

int main()
{
    std::string name = "agHello";


    if(findG(name)) 
    {
        std::cout << "It found Hello\n";
    }
    else
    {
        std::cout << "It did not find hello \n";
    }
}

То, что вы видите, логическая функция, которая возвращает, если находит строку, заданную в аргументе.

Я понимаю, что делает функция. Что меня интересует, чтобы узнать, что такое функции функции NotfindG в приведенном выше коде?

bool NotfindG( const std::string name)
{
    return !findG(name); 
}

Я видел, что кто-то использовал это, но для меня эта функция должна работать даже без логической функции NotfindG (я имею в виду в состоянии else). Не могли бы вы дать мне некоторые соображения о том, почему кто-то будет использовать это?

1 Ответ

1 голос
/ 20 апреля 2020

В вашем примере кода на самом деле ничто не вызывает NotFindG, так что действительно в этом просто нет необходимости.

Универсальная Not* разновидность функции bool имеет ограниченное применение, но я могу придумать несколько обоснований:

  • Это приносит мало вреда существующим; если вызывающий абонент считает, что его лучше использовать, тогда go впереди.
  • Это может быть набор похожих функций, поэтому даже если эта конкретная функция не кажется необходимой, это просто вопрос согласованности с каким-то стилем.
  • FindG выглядит специфично c для какой-то бизнес-логики c, что означает, что хорошей идеей может быть завертывание как можно большей ее части. Возможно, NotFindG - это конкретное требование c, которое теоретически может быть чем-то иным, чем FindG, поэтому технически точнее назвать NotFindG, чем !FindG. Черт, возможно, FindG - это тот, который следует удалить, если это так.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...