Как вызвать функцию в той же функции в C ++ - PullRequest
0 голосов
/ 16 сентября 2018

Я работаю над тральщиком для школьного проекта. В настоящее время я работаю над открытием соседних квадратов, если число мин в смежных квадратах равно 0. Я написал для этого функцию.

{
    void Square::openAdjacent(int a, int b)
    {
        for (int i=(a-1); i<=(a+1); i++)
             {
               for (int j= (b-1); j<=(b+1); j++)
                 {
                    if ((i==a && j==b) || (i<=0) || (j<=0) || (i>=board_->size()) || (j>=board_->size())){}
                    else if (not board_->at(j).at(i).opened_ && count_==0 && (opened_) && (not board_->at(j).at(i).hasMine_)){
                             board_->at(j).at(i).opened_=true;
                             if (board_->at(j).at(i).count_==0){
                                 openAdjacent(i, j);
                             }
                          }
                 }
             }
    }
}

Как вы можете видеть, я вызывал функцию openAdjacent внутри этой же функции. Я прочитал вокруг и узнал, что это невозможно в C ++. Я хотел бы знать, возможно ли обойти эту проблему и как мне это сделать.

1 Ответ

0 голосов
/ 16 сентября 2018

Я прочитал и узнал, что это невозможно в C ++. я мог бы хотелось бы знать, если это возможно, чтобы обойти проблему и как я должен сделать это.

Нет, обойти проблему невозможно, потому что проблема не существует. Вы можете вызвать функцию в той же функции. Или даже косвенно из функции, вызванной из него. Здесь действительно нет никаких ограничений. Вам просто нужно позаботиться о том, чтобы положить конец бесконечной рекурсии.

...