Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Ошибка "class" type redefinition на объявление класса  (Прочитано 17517 раз)
0 Пользователей и 1 Гость смотрят эту тему.
andrystepa
Помогающий

ru
Offline Offline

« : 10-03-2007 20:06 » 

Выполняю задание из учебника. Создаю базовый класс фигур. В файле Figure.h такой код:
Код:
4 namespace MyFig
5 {
6 class Figure
7 {
8 public:
9 Figure():name("Фигура") { };
10 Figure(string nam):name(nam) { };
11 virtual ~Figure(void);
12 void draw();
1 void erase();
14 void center();
15 private:
16 string name;
17 };
18 }
При компиляции компилятор Visual Studio 2005 ругаетя на строку 7 -
говорит
Error   1   error C2011: 'MyFig::Figure' : 'class' type redefinition
Но где тут переопределение?  Не понял Ведь это первое объявление класса!
Откуда может взяться переопределение, если этот класс еще нигде не объявлялся? А черт его знает...
Помогите, пожалуйста!
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 10-03-2007 21:30 » 

andrystepa, может ты несколько раз этот файл подключаешь?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Tuborg
Команда клуба

ee
Offline Offline

« Ответ #2 : 10-03-2007 21:39 » 

Смотри внимательнее - при компиляции какого CPP файла возникает ошибка в H-файле. Н-файлы не компилируются и ошибки в них быть могут только синтаксические. Какой компилятор? Кинь весь отчёт компилятора если не видишь при компиляции какого CPP файла возникает ошибка
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #3 : 11-03-2007 07:57 » 

Может стражей(#ifdef) забыл поставить в заголовочном файле?
Записан

Странно всё это....
andrystepa
Помогающий

ru
Offline Offline

« Ответ #4 : 11-03-2007 08:47 » 

Да, про #ifdef я как-то позабыл. Дело в том что в исполнимый файл я включаю 2 производных класса, а в каждом производном классе, естественно, включается базовый. Похоже ошибка именно из-за этого.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines