2012-03-26 4 views
1

У меня есть проект C++, над которым я работаю. Я немного в тупике. Мне нужна небольшая помощь. Мне нужно реализовать код из файла .h в файл main.cpp, и я не уверен, как это сделать.Как реализовать код в файле .h в файле main.cpp?

Например, код кода из main.cpp:

switch (choice){ 
case 1: // open an account 
    { 
    cout << "Please enter the opening balence: $ "; 
    cin >> openBal; 
    cout << endl; 
    cout << "Please enter the account number: "; 
    cin >> accountNum; 
    cout << endl; 

    break; 
    } 
case 2:// check an account 
    { 
    cout << "Please enter the account number: "; 
    cin >> accountNum; 
    cout << endl; 
    break; 
    } 

и коды из .h файла:

void display(ostream& out) const; 
// displays every item in this list through out 

bool retrieve(elemType& item) const; 
// retrieves item from this list 
// returns true if item is present in this list and 
//    element in this list is copied to item 
//   false otherwise 

// transformers 
void insert(const elemType& item); 
// inserts item into this list 
// preconditions: list is not full and 
//    item not present in this list 
// postcondition: item is in this list 

В файле .h вам нужно будет использовать пустую вставку под трансформатором в main.cpp в случае 1. Как вы это сделаете? Любая помощь заслуживает внимания. Надеюсь, я никого не путал с тем, что мне нужно знать, как это сделать. Благодаря

+0

включают .h файл в файл main.cpp и сделать реализацию. Если ваш .cpp не является загрузочным файлом (не имея основного), вам придется написать другой .cpp-файл, а затем ссылку на основную программу. – Jagannath

+0

У меня есть файл .h, который находится в верхней части файла main.cpp. – Lea

ответ

1

В main.cpp вам необходимо включить файл заголовка в верхней части, как это:

#include "header_file.h" 

Теперь вы должны иметь возможность свободно называть insert() под case 1:, как вы хотели.

Однако эти объявления функций не будут делать многое без реализаций. Итак, у вас есть несколько вариантов. Вы можете поместить реализации в main.cpp, или вы можете создать новый файл .cpp, где хранятся реализации этих функций. (Не волнуйтесь, компоновщик позаботится о бизнесе «отдельный исходный файл»)

Самый простой метод объявления функций в файле заголовка и их реализация в файле cpp можно очертить следующим образом:

foo.h файл:

void insert(const elemType& item); // This is your declaration 

foo.cpp файл:

#include "foo.h" 
void insert(const elemType& item) 
{ 
    // Function should do its job here, this is your implementation 
} 
+0

У меня есть еще один .cpp-файл, содержащий все реализации для функций в файле .h. Поэтому я не уверен, что мне нужно включить что-либо из другого .cpp-файла в основном для функций, которые нужно пройти. – Lea

+0

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

+0

в порядке. Но я до сих пор не знаю, как использовать вставку в main.cpp в случае один, когда реализация находится под другим .cpp-файлом – Lea

0

Ну, если вы включили заголовочный файл, вы должны быть в состоянии реализовать любой FUNC которое вы указали в этом заголовке. Например, вы хотите реализовать функцию insert, ваш main.cpp должен выглядеть следующим образом:

#include "myhfile.h" 

void insert(const elemType& item) 
{ 
    // implement here 
} 

int main() 
{ 
    // your switch here 
    // you can now use insert(item) because it is implemented above 
} 
Смежные вопросы