2015-04-21 1 views
1

я есть 3 C++ исходные файлы, и мне нужно вызвать функцию из одного файла в другойКак вызвать функцию C++ из внешнего файла?

getch.cpp

#include<stdio.h> 
#include "getch2.h" 
main() 
{ 
char ch='x'; 
fun(ch); 
} 

getch2.cpp

#include<stdio.h> 
void fun(char); 
main() 
{ 

} 
void fun(char x) 
{ 
printf("the ascii value of the char is %d",x); 
} 

func.h

void fun(char); 

, когда я compil е getch2.cpp я получаю ошибку

C: \ Users \ amolsi \ AppData \ Local \ Temp \ cc1k7Vdp.o getch.cpp :(текст + 0x18):. неопределенная ссылка на `забавного (полукокс)»

C: \ Users \ amolsi \ Documents \ файлы C \ collect2.exe [Error] л.д. вернулся 1 Статус выхода

ответ

6
  1. Ваши main функции должны быть изменены на:

    int main() { ... } 
    
  2. Оба getch.cpp и getch2.cpp содержат main функции. Вы не можете использовать их вместе для создания исполняемого файла. Они должны использоваться для создания отдельных исполняемых файлов.

  3. Для того, чтобы использовать fun от getch.cpp и getch2.cpp построить исполняемые файлы, вам необходимо переместить определение void fun(char){...} из getch2.cpp в другой .cpp файла. Назовем это func.cpp.

  4. Используйте getch.cpp и func.cpp, чтобы создать один исполняемый файл.

  5. Используйте getch2.cpp и func.cpp, чтобы построить другой исполняемый файл.

Update, в ответ на комментарий OP в

Файл func.h:


void fun(char); 

Файл func.cpp:


void fun(char x) 
{ 
    printf("the ascii value of the char is %d",x); 
} 

Файл getch.cpp:


#include <stdio.h> 
#include "func.h" 

int main() 
{ 
    char ch='x'; 
    fun(ch); 
    return 0; 
} 

Файл getch2.cpp:


#include<stdio.h> 
#include "func.h" 

int main() 
{ 
    char ch='y'; 
    fun(ch); 
    return 0; 
} 

Использовать getch.cpp и func.cpp для создания исполняемого файла getch.exe.
Используйте getch2.cpp и func.cpp для создания исполняемого файла getch2.exe.

+0

Я действительно не получил тебя, человек –

+0

@amolsingh, см. Мое обновление. –

0

Ваш #include прекрасно, проблема заключается в том, что вы не реализуете fun в любом месте.

+0

Ошибка, возникающая при компиляции 'getch.cpp', а не' getch2.cpp' (который имеет 'fun'). – zneak

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

  • Нет связанных вопросов^_^