2015-01-31 3 views
-1

Я писал на C++ в последнее время, и меня путают с .cpp vs .h - когда их использовать и что им нужно делать. Я читал, что вы должны поместить определения функций в отдельный файл .cpp, а заголовки должны использоваться для объявлений, но как использовать отдельный файл .cpp? Do I #include это или что? Я ищу разъяснения на .h и .cpp и что должно идти, где и как включать отдельные файлы .cpp..cpp vs .h и где я должен помещать определения функций

+0

вы имеете в виду обычные функции или шаблоны? – wimh

+0

См. Также [код C++ в файлах заголовков] (http://stackoverflow.com/questions/583255/c-code-in-header-files/) и [Разделение кода в заголовки/исходные файлы] (http: // stackoverflow.com/questions/2584856/splitting-code-into-headers-source-files) и [Почему у файлов заголовков и '.cpp' файлы на C++] (http://stackoverflow.com/questions/333889/why -У-заголовок-файлы-и-CPP-файлы-в-с). –

ответ

0

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

#define CONSTANT 123 // pre-processor directive 
void myfunction(char* str); 

и ваш test.cpp может выглядеть

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

int main(int argc char **argv) 
{ 
    myfunction("Hello World"); 
    return 0; 
} 

void myfunction (char* str) 
{ 
    printf("%s and constant %d", str, CONSTANT); 
    return; 
} 
+2

Возможно, вы захотите упомянуть 'inline'-функции (как неявные, так и явные) и' template '. – Deduplicator

0

Обычно объявление класса переходит в заголовочный файл (.h), а реализация идет в .cpp-файле.

Вы заголовочный файл в файле CPP, поэтому все функции будут признаны, и вы должны помнить, чтобы использовать #ifndef в заголовочном файле, чтобы избежать ошибок (включает в себя петлю)

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