Функция не содержит 1 аргументов С++

Я создал функцию, которая принимает 1 аргумент. Потом я использую её в коде, и она не подчеркивается, как ошибка. Когда я уже пытаюсь собрать проект, выводится такая ошибка: "MyFunction: функция не содержит 1 аргументов". Как мне это исправить? Вот код:

#include <iostream>
#include <string.h>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <windows.h>
#include <conio.h>
#include <vector>
#define ENTER 13
#define UP 72
#define DOWN 80
#define ESCAPE 27
using namespace std;

string language;
int range;
bool seeAttempts = true;
vector<string> myVector = {};
int activated = 0;
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
void Language();
void Menu();
void Settings();
void Difficulty();
void Game();
void ArrayToVector();
void PrintVector();
string CreateAddition();

void CursorView(bool show, int size) {
    CONSOLE_CURSOR_INFO structCursorInfo;
    GetConsoleCursorInfo(hStdOut, &structCursorInfo);
    structCursorInfo.bVisible = show;
    structCursorInfo.dwSize = size;
    SetConsoleCursorInfo(hStdOut, &structCursorInfo);
}

void main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    SetConsoleTitle(L"Guess The Number");
    Language();
}

void Language() {
    string languages[] = { "Русский", "English", "Выход / Exit" };
    activated = 0;
    ArrayToVector(languages);
    PrintVector(myVector);
    char ch;
    while (true) {
        ch = _getch();
        if (ch == -32) ch = _getch();
        switch (ch) {
        case UP:
            activated--;
            if (activated < 0) activated = 2;
            break;
        case DOWN:
            activated++;
            if (activated > 2) activated = 0;
            break;
        case ESCAPE:
            exit(0);
            break;
        case ENTER:
            if (activated == 2) exit(0);
            language = myVector[activated];
            Menu();
            break;
        }
    }
}

void Menu() {
    cout << "Hello World\n";
    system("pause");
}

void ArrayToVector(string myList[]) {
    for (int i = 0; i < (sizeof(myList) / sizeof(*myList)); i++) {
        myVector.clear();
        myVector.push_back(myList[i]);
    }
}

void PrintVector(vector<string> vector) {
    for (int i = 0; i < vector.size(); i++) {
        if (i == activated) SetConsoleTextAttribute(hStdOut, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
        else SetConsoleTextAttribute(hStdOut, FOREGROUND_GREEN);
        cout << vector[i] << endl;
    }
}

Ответы (1 шт):

Автор решения: 4500zenja

Не забывайте, что Вы объявили функции ArrayToVector() и PrintVector() безо всяких аргументов, однако затем Вы определяете эти функции, как будто в них уже есть один аргумент:

// объявление, аргументов нет
void ArrayToVector();
void PrintVector();

// определение, аргументы есть, компилятор не может соединить определение с объявлением,
// рождается ошибка и всё остальное
void ArrayToVector(string myList[]) {
    ...
}

void PrintVector(vector<string> vector) {
    ...
}
→ Ссылка