Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2011, 16:33   #1
mihailvolk
 
Регистрация: 10.04.2011
Сообщений: 6
По умолчанию Проблема с классами и графическим режимом

Необходимо написать игру "Охота на тараканов". Для начала я решил нарисовать прицел, но не могу понять ошибки: Должно быть три файла: main.cpp; class.h; function.cpp Вот они:
main.cpp:
Код:
#include "graphics.h"
#include <stdio.h>
#include "class.h"
#include "function.cpp"

void main()
{
prizel;
int driver = DETECT, mode = 0;
initgraph( &driver, &mode, "" );
closegraph();
}

class.h:
class prizel
{
public:
prizel();
~prizel();
void showprizel(int, int);
};
function.cpp:
Код:
#include "class.h"
void prizel :: showprizel(int x=320, int y=240)
{
setcolor (4);
circle (x, y, 20);
}
Должна получиться красная окружность на экране, но вместо этого 4 ошибки:
Цитата:
Error 1 error C3861: 'setcolor': identifier not found c:\users\михаил\desktop\курсовая работа в6\function.cpp 4(line)
Error 2 error C3861: 'circle': identifier not found c:\users\михаил\desktop\курсовая работа в6\function.cpp 5(line)
Error 3 error C2011: 'prizel' : 'class' type redefinition c:\users\михаил\desktop\курсовая работа в6\class.h 2(line)
Error 4 error C2027: use of undefined type 'prizel' c:\users\михаил\desktop\курсовая работа в6\function.cpp 2(line)
Что не так?

Последний раз редактировалось Stilet; 10.04.2011 в 19:28.
mihailvolk вне форума Ответить с цитированием
Старый 10.04.2011, 17:19   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

1. cpp файлы никогда не подключают через #include.
2. class.h нужно защитить от повторного включения посредством макросов:
Код:
#ifndef _CLASS_H
#define _CLASS_H

// Тут описания класса prizel
...

#endif
3. В function.cpp так же нужно подключить graphics.h, чтобы компилятор и там знал о существовании функций setcolor и circle (если они конечно существуют в graphics.h)
pu4koff вне форума Ответить с цитированием
Старый 11.04.2011, 00:07   #3
mihailvolk
 
Регистрация: 10.04.2011
Сообщений: 6
По умолчанию

функции setcolor и circle существуют в graphics.h, но при его подключении выводится 20 ошибок в самой библиотеке, а она точно рабочая!
mihailvolk вне форума Ответить с цитированием
Старый 11.04.2011, 00:17   #4
mihailvolk
 
Регистрация: 10.04.2011
Сообщений: 6
По умолчанию

А как тогда cpp файлы подключать?
mihailvolk вне форума Ответить с цитированием
Старый 11.04.2011, 07:37   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от mihailvolk Посмотреть сообщение
функции setcolor и circle существуют в graphics.h, но при его подключении выводится 20 ошибок в самой библиотеке, а она точно рабочая!
Фишка компиляторов С++ в том, что ошибки накапливаются и посему нужно их рассматривать сначала. Исправите одну первую ошибку и в итоге пропадут оставшиеся 20. Если ошибки внутри проверенной библиотеки появляются, значит не так вызываете функции, не то передаёте,...
Цитата:
Сообщение от mihailvolk Посмотреть сообщение
А как тогда cpp файлы подключать?
Никак. cpp должны находиться внутри проекта и компилятор их сам "подберёт" (если через командную строку компилируете, то на вход компилятору нужно подавать все нужные cpp файлы). Может в Turbo C++ (или как это древнее детище борланда там называется) какие-то особые механизмы и что-то еще требуется, не знаю, т.к. не работал в нём, но уж точно это не через #include делается.
И еще напишите хотя бы так чтоли:
Код:
void main()
{
prizel a;

Последний раз редактировалось pu4koff; 11.04.2011 в 07:46.
pu4koff вне форума Ответить с цитированием
Старый 12.04.2011, 16:08   #6
mihailvolk
 
Регистрация: 10.04.2011
Сообщений: 6
По умолчанию

Спасибо! Работает, пока...
mihailvolk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поправить прогу с графическим режимом. Хелен Паскаль, Turbo Pascal, PascalABC.NET 0 22.12.2010 23:25
Проблема с графическим выводом текста Alex Cones Общие вопросы Delphi 1 27.07.2010 13:07
Помогите с графическим режимом romario1978 Общие вопросы C/C++ 1 03.01.2010 16:17
Проблемы с графическим режимом masha17 Помощь студентам 1 05.12.2009 17:58
Проблема с графическим редактором.Delphi Scabby Помощь студентам 3 27.10.2009 21:16