Извикване на функция в изходен файл на C++ от main

Използвам IDE на netbeans за моята C++ реализация. Имам два изходни файла main.cpp и univ.cpp. И дефинирах функция show() в univ.cpp. Как мога да извикам тази функция от main. Когато се обаждам нормално, както по-долу, получавам "show() not in scope".

    int main(int argc, char**argv)
    {
       show();
       return 0;
    }

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

Благодаря.


person Ram Kumar    schedule 23.08.2014    source източник
comment
return 0 е шум. Подразбира се.   -  person Kerrek SB    schedule 23.08.2014
comment
@BartoszKP: По-скоро не искам шофьорска книжка, просто искам да карам проклетата кола.   -  person Kerrek SB    schedule 23.08.2014
comment
Възможен дубликат на Ефекти на ключовата дума extern върху C функции   -  person jww    schedule 23.08.2014


Отговори (2)


Декларирайте функцията:

int main(int argc, char **argv)
{
   extern void show();
   show();
}
person Kerrek SB    schedule 23.08.2014
comment
Декларациите на функциите имат по подразбиране връзка external, следователно ключовата дума е излишна - person Piotr Skotnicki; 23.08.2014
comment
@PiotrS.: Това е вярно. - person Kerrek SB; 23.08.2014

Трябва да създадете заглавка за univ, наречена univ.h, тук ще бъде кодът:

#ifndef _UNIV_H_
#define _UNIV_H_

void show();

#endif

Ще трябва да го включите и в двата cpp файла.

#include <univ.h>
person Dan    schedule 23.08.2014