2016-02-28 87 views
1

這些文件從較大程序中縮短。兩個頭文件和兩個.CPP文件

我在編譯C++中的這些文件時遇到了麻煩,我不完全確定問題所在。我已經改變了函數的參數來包含變量course_holder和course_count,但是增加了更多的錯誤。

我在做什麼錯?


struct_header.cpp

#ifndef FILENAME_H 
#define FILENAME_H 
#include <iostream> 
#include <stdlib.h> 
#include <iomanip> 

using namespace std; 

struct course_struct   
{ 
string course_ID; 
}; 

#endif 

func_proto.h

//func_proto.h 
#ifndef FUNCTIONS_H 
#define FUNCTIONS_H 

void add_course(course_struct (& array_course)[10][100]); 

#endif 

functions.cpp

// functions.cpp 
#include "struct_header.h" 
#include "func_proto.h" 

void add_course(course_struct (& array_course)[10][100]) 
{ // start f1 
    cout << "ENTER COURSE ID> "; 
    cin >> course_holder; 

    array_course[course_count][0].course_ID = course_holder; // course ID = user input 
    cout << course_holder; 

    course_count++; // increment for the next time this function is run 
    return; 
}// end f1 

main_funct.cpp

#include "struct_header.h" 
#include "func_proto.h" 

course_struct array_course[10][100]; 

int course_count = 0; 
string course_holder; 

int main() 
{ 
    add_course(array_course); 

    return 0; 
} 

和錯誤

functions.cpp: In function ‘void add_course(course_struct (&)[10][100])’: 
functions.cpp:8:9: error: ‘course_holder’ was not declared in this scope 
functions.cpp:10:15: error: ‘course_count’ was not declared in this scope 
func_proto.h:5:33: error: variable or field ‘add_course’ declared void 
func_proto.h:5:50: error: ‘array_course’ was not declared in this scope 
func_proto.h:5:62: error: ‘course_struct’ was not declared in this scope 
+0

聲明course_countcourse_holder course_holder'遍佈當它不直到權利之前定義的地方'main'。 –

回答

0

你使用了`需要functions.cpp

extern int course_count; 
extern string course_holder; 
+0

這確實有幫助,謝謝。跟最後三個錯誤有什麼關係?那些沒有閱讀結構的人。 –

+0

同樣的問題。你沒有聲明(在適當的地方)。 –