2013-08-28 172 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文件但位於同一項目中的函數。

謝謝

+0

這就是*正是*頭文件的用途。你包含'CPP'文件;也許你應該使用他們的'HPP'版本。 – usr2564301

+0

你是否收到多重定義錯誤? – 2013-08-28 12:26:53

+0

引入'.cpp'的頭文件並將兩個'cpp'構建在一起 –

回答

0

不要包含.cpp文件!

通常情況下,包含.cpp文件將導致重新編譯不應編譯或不編譯多次的代碼(因此鏈接錯誤)。另一方面,在.h文件中,你可以放置聲明和其他可以多次編譯的東西,對於每個包含該.h文件的文件,它們都將被大致編譯一次。

在這種情況下,由於您聲明瞭structure()和comment(),所以您可能不需要用任何內容替換.cpp包含。

相關問題