![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
fuckingniger |
|
||||||||||||||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
прочитал про наследование. решил протестировать программкой свои знания + разделить на много файлов.Скорее всего в разделении что -то и напутал - никак не получается исправить.Думаю кто ппонимает не трудно будет помочь
итак код: class1.h
class1.cpp
class2.h
class2.cpp
class3.h
class3.cpp
main.cpp
а вот ошибки - следующие:
Добавлено через 12 минут и 29 секунд ошибки порезало - вот на самом деле какие:
|
||||||||||||||||||
|
|||||||||||||||||||
fuckingniger |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
я тут попробовал class3 в main не подключать - заработало...видимо что то в class3 я напутал но не понять мне - замучался уже
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
см. стражи включения
|
|||
|
||||
Crafty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 3.11.2008 Репутация: 12 Всего: 14 |
fuckingniger, у вас class1.h и class2.h повторно подключаются в class3.h и из-за этого получается переопределение этих классов.
Используйте гварды чтобы такого не было:
Так для всех *.h файлов. Это сообщение отредактировал(а) Crafty - 4.10.2010, 17:58 |
|||
|
||||
fuckingniger |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
мммм...а повторно относительно чего?
З.Ы.не слышал ни разу про такие штуки |
|||
|
||||
Crafty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 3.11.2008 Репутация: 12 Всего: 14 |
fuckingniger, в class3.h вы подключаете два заголовка class1.h и class2.h, а потом в main.cpp подключаете class1.h, class2.h и class3.h(к-рый уже содержит подключение class1.h и class2.h).
То есть вы переопределяете class1 и class2. Это сообщение отредактировал(а) Crafty - 4.10.2010, 15:04 |
|||
|
||||
fuckingniger |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
Crafty
а использование #ifndef CLASS1_H #define CLASS1_H является лучшим способом или это плохой стиль программирования? |
|||
|
||||
Crafty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 3.11.2008 Репутация: 12 Всего: 14 |
fuckingniger, лучшим.
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
fuckingniger |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
щас тогда попробую
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
для студии можно использовать не переносимое #pragma once |
|||
|
||||
fuckingniger |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
Цитата(mes @ 4.10.2010, 15:38 )
единственным стандартным для студии можно использовать не переносимое #pragma once как это сделать? |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
если используете студию и не планируете компилировать исходники другими компиляторами внесто стражей #ifndef...#endif просто в начале хидера ставьте
это "съэкономит силы", но "убъет" переносимость между компиляторами ![]() Добавлено через 3 минуты и 29 секунд ну а вобще главный совет был дан выше, вместо того чтоб по частям выспрашивать , лучше один раз в гугле : Это сообщение отредактировал(а) mes - 4.10.2010, 17:02 |
|||
|
||||
fuckingniger |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
а где его писать то #pragma once?
Добавлено через 3 минуты и 35 секунд я сделал как сказал Crafty но видимо я его не так понял. Изменил по его примеру все cpp файлы в которых описание функций из .h вот что вышло: class1.cpp
class2.cpp
class3.cpp
|
||||||
|
|||||||
fuckingniger |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 1.10.2010 Репутация: нет Всего: 1 |
и вообще имеет ли CLASS2_H итп какую либо смысловую нагрузку или это простое названия которое можно заменить на стопицот???
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |