подключение отдельных файлов
есть очень большой код и мне надо как то его сокротить и вот я придумал что можно создать отдельные файлы которые будут отвечать за все и тогда код уменьшится и понимать легче будет
и вот проблема:
у меня есть один файл в котором все обробатывается
и второй (не знаю какой делать cpp или h) и там для начала одна функция
и мне надо подключить этот второй файл к первому.
содержимое 2 файла:
float asd(int x, int y)
{
и вот тут у меня написано все разное (оно не важно) и там в одной строчке мне надо будет указать x и y
}
а потом как мне сделать что бы можно было писать в 1 файле что то вроде
asd(<число>,<число>);
я пытался сделать второй файл h и подключить к первому #include <"имя 2 файла"> но не работает.
делать пару name.h и name.cpp
в .h - объявления функций и классов(без реализации)
в .cpp - реализация функций и методов классов
чтобы добавить .h нужно сделать #include "path/name.h" - path/ - путь к name.h относительно каталога проекта.
.cpp компилятор сам подхватит(верно для Visual Studio, для gcc нужно прописывать в Makefile имена .cpp файлов)
пример:
test.h
test.cpp
int mult(int a, int b)
{return a*b;}
main.cpp
...
void main()
{...}
п.с. реализация шаблонных функций и методов шаблонных классов должна быть в .h файле
беги гугл и читай про объявление функций в C++, вопросы отпадут.
если не помогло, то перечитывай мой пост и подпись.
я искал что то вроде "работа с 2 cpp файлами" =)) но ничего не нашел толклвого =)
мне там не надо ничего возврощать
вот что у меня в cpp
#include "creat_object.h"
int sphere( int r, int x, int y, int z)
{
glPushMatrix();
glTranslated(x, y, z);
glRotated(45, 1, 0, 0);
glutWireSphere(r, 32, 32);
glPopMatrix();
}
в h
ну и в главном я пишу что бы рисовало эту сферу
и никак не работает, в чем проблема??
ну и в главном я пишу что бы рисовало эту сферу
и никак не работает, в чем проблема??
Возможно, ты невнимательно прочёл вот это:
То есть, файл .cpp надо ещё подключить к проекту. Но тут, чтобы дать совет, надо знать, какие инструменты используются (IDE, компилятор и т.п.).
"и никак не работает, в чем проблема??",
я тебя отправлю в бан.
Это форум программистов, а не телепатов и репититоров.
P.S. русский для тебя не родной язык? следует и его поправить.
=)) а прикол в том что не родной =))
сути это меняет. для общения на форумах лучше таки подучить русский.
по делу.
1) твой код работает до разделения на файлы?
2) если не работает - ошибки в студию.
3) работает - всё равно, ошибки в студию.
потому что без точной ругани компилятора помочь тебе проблематично, т.к. непонятно, где ты напортачил с разбиением кода.
1>c:\documents and settings\user\мои документы\visual studio 2010\projects\opengl\opengl\creat.cpp(11): error C4716: 'sphere' : must return a value
я так понял что тут функция не возврощает ничего и надо сделать что бы возврощала
но что мне возврощать?? там же нечего. как исправить??
Бгг... Вы же сами объявили свою функцию возвращающей значение:
Измените на
Естественно, в файле реализации int тоже нужно заменить на void.
1>c:\documents and settings\user\мои документы\visual studio 2010\projects\opengl\opengl\creat.cpp(11): error C4716: 'sphere' : must return a value
я так понял что тут функция не возврощает ничего и надо сделать что бы возврощала
но что мне возврощать?? там же нечего. как исправить??
вам таки стоит прочитать учебник по C++ прежде чем садиться программировать...
да все таки стоит купить книг =) ну я уже одну заказал
С/С++. Программирование на языке высокого уровня
может нормально.
я просто недавно начал программировать на C++, моделингом занимался (в максе).
делать пару name.h и name.cpp
в .h - объявления функций и классов(без реализации)
в .cpp - реализация функций и методов классов
п.с. реализация шаблонных функций и методов шаблонных классов должна быть в .h файле
А функция обработки нажатия кнопки на форме - шаблонная?
У меня не получается вынести ее из файла .h в отдельный файл .cpp.
У меня не получается вынести ее из файла .h в отдельный файл .cpp.
Не помню, чтобы в литературе кто-то это отметил. Возможно, я забыл или пропустил.
Но, предполагаю, что тут будет проблема для компилятора - он не сможет сделать объектный файл, так как ему неизвестно на что заменять шаблон.