Основные функции C ++ и передача параметров Ошибка: CS3861 - PullRequest
0 голосов
/ 15 октября 2018

В настоящее время я не учусь в отпуске и стараюсь не отставать от работы, где могу.У меня небольшой опыт работы с C #, но C ++ для меня нов, поэтому у меня возникли небольшие проблемы с использованием функций и передачей параметров.

Visual Studio выдает мне сообщение об ошибке в «menu (selection);»подробное описание этого «меню»: идентификатор не найден, ошибка: CS3861.Любые советы / советы будут наиболее ценными.Вот мой код:

using namespace std;
int main()
{
    // print msg
    cout << "This program will allow you to select an option 1-4.\nSelect an option to see the output.";
    // declare selection - used to get desired user input
    int selection;
    //call menu
    menu(selection);
}

void menu(int selection)
{
    cout << "Please select an option:" << endl;
    cout << "1. op1\n2. op2\n3. op3\n4. Exit program";
    cin >> selection;
    while (selection < 1 || selection>4)
    {
        cout << "Selection invalid, please choose an option from 1-4";
    }
}

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Как уже отмечали другие, перед вызовом функции ее необходимо объявить, поэтому либо переместите определение функции в начало программы, либо сделайте предварительное объявление.Похоже, вы также хотите, чтобы выбор, сделанный в функции menu (), был доступен в main (), поэтому вместо передачи переменной выбора по значению передайте ее по ссылке.

#include <iostream>

using namespace std;

void menu(int& selection); // forward declaration

int main()
{
    // print msg
    cout << "This program will allow you to select an option 1-4.\nSelect an option to see the output.";
    // declare selection - used to get desired user input
    int selection;
    //call menu
    menu(selection);
}

void menu(int& selection) // function definition
{
    cout << "Please select an option:" << endl;
    cout << "1. op1\n2. op2\n3. op3\n4. Exit program";
    cin >> selection;
    while (selection < 1 || selection>4)
    {
        cout << "Selection invalid, please choose an option from 1-4";
    }
}
0 голосов
/ 15 октября 2018

Есть несколько проблем с вашим кодом.

Проблему, о которой вы пишете, вы можете решить, объявив функцию перед ее использованием.Компилятор c ++ сначала встречает функцию «menu» в вашем основном функционале, но вы определяете (и объявляете) ее позже, следовательно, в вашей основной функции неизвестно, какую функцию следует вызывать.

using namespace std;

void menu(int); // << forward declaration of the menu function

int main()
{
    // print msg
    cout << "This program will allow you to select an option 1-4.\nSelect an option to see the output.";
    // declare selection - used to get desired user input
    int selection; 
    //call menu
    menu(selection);
}

Во фрагменте вашей основной функции ваша menu функция не объявлена.Вы можете решить это, используя предварительное объявление вашей функции, см. Комментарий выше.Более нюансированной ошибкой является то, что вы не назначаете значение для выбора переменной.Это означает, что меню может (будет) вызываться с непредвиденным значением.

...