2013-08-28 2 views
0

Я делаю проект в Visual Studio 2013 Preview, который включает в себя код из учебников, с которых я изучаю C++. Основной файл в проекте содержит программу, которая может запускать функции, определенные в другом .cpp-файле в том же проекте. Код для него ниже:Как я могу использовать функции в другом .cpp-файле?

#include "stdafx.h" 
#include <iostream> 
#include "Comments.cpp" 
#include "Structure of a Program.cpp" 

int structure(void); 
void comment(void); 

int main() 
{ 
    using namespace std; 
    cout << "This project contains files related to Chapter 1 of Learn CPP 
     Tutorials\n" << endl; 
    cout << "Please type in the tutorial number to view its output:\n" << 
     "1 - Structure of a Program\n" << 
     "2 - Comments\n" << 
     "3 - A First Look at Variables (and cin)\n" << 
     "4 - A First Look at Functions\n" << 
     "5 - A First Look at Operators\n" << 
     "6 - Whitespace & Basic Formatting\n" << 
     "7 - Forward Declarations\n" << 
       "8 - Programs With Multiple Files\n" << 
     "9 - Header Files\n" << 
     "10 - A First Look at the Preprocessor\n" << 
     "11 - How to Design your First Programs\n" << endl; 
    int x; 
    cin >> x; 
    if (x == 1) 
    { 
     structure(); 
    } 
    if (x == 2) 
    { 
     comment(); 
    } 
    cout << "Thank you for using this program. Good bye." << endl; 
    return 0; 
} 

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

Thanks

+0

Это точно, для каких файлов заголовков. Вы включаете файлы 'CPP'; возможно, вы должны были использовать их версии «HPP». – usr2564301

+0

Вы получаете множественную ошибку определения? –

+0

Включите заголовочный файл '.cpp' и создайте как' cpp 'вместе –

ответ

0

Никогда не включайте .cpp файлы!

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

В этом случае, поскольку вы указали структуру() и comment(), вам, вероятно, не нужно заменять .cpp, что-то есть.

Смежные вопросы