Функция int main(void) уже имеет текст реализации. Код ошибки

1205
03 января 2018, 19:41

Делаю одну программу для эксперимента и возникла одна ошибка. Сделал новый проект и оставил ту же функцию и те же свойства, а ошибка так и осталась, в чем может быть дело? Ошибка: функция "int main(void)" уже имеет текст реализации (C2084)

Source.cpp

#include <iostream>
#include <Windows.h>
#include "func.h"
using namespace std;
void Interface();
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    Interface();
}

func.h

#pragma once
#include "Source.cpp"
void Interface() {
    int quest;
    while (true) {
        cout << "1. Открыть базу" << endl;
        cout << "2. Закрыть программу" << endl;
        cout << "Номер пути _\b";
        cin >> quest;
        if (quest = 1) {
            cout << "Открыто!";
        }
        else if (quest = 2) {
            cout << "Закрыто!";
        }
    }
}
Answer 1

У вас неверное понимание, что должно находиться в заголовочном файле, а что - в .cpp.

В заголовочном файле располагайте объявления, а определения - в cpp-файле. В заголовочном файле располагаются также inline-реализации, шаблоны и т.п. вещи, но в вашем случае все, что следует разместить в func.h - это

void Interface();

Все остальное - в .cpp-файлах, и не включать .cpp-файлы с помощью директивы #include - иначе вы получаете нарушение правила одного определения.

READ ALSO
Требуется протестировать программу

Требуется протестировать программу

Требуется протестировать программуПрограмма создает шары разных цветов и передвигает их внутри допустимой области с разными скоростями

268
Программа отдаёт разные ответы в разных компиляторах

Программа отдаёт разные ответы в разных компиляторах

В онлайн компиляторе код (http://cppsh/4gnfb) при вводе:

239
Переменные захлебываются (C++)

Переменные захлебываются (C++)

Не могу понять почему переменные "захлебываются" после введения второй и тдзаписи

293
Где указатель хранит значение

Где указатель хранит значение

Если указатель хранит адресс ячейки, то где хранится само значение?? например где хранится число 5?

241