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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2013, 22:27   #1
Сергей.Ш
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 43
По умолчанию с++ разбор урока 21 "Знакомство с классами.

http://ideone.com/X60umD Я представляю код взятый из урока 21 нашего сайта.При компиляции идет ошибка.Я не могу понять откуда она.
sergei1960jabber.ru
Сергей.Ш вне форума Ответить с цитированием
Старый 10.11.2013, 22:37   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

У тебя описана реализация метода с именем show_breed, но в классе dogs его нет в списке методов - на это тебе и ругается.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.11.2013, 22:39   #3
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Код:
void dogs::show_breed(void)
замените на
Код:
void dogs::show_dog(void)
....
....
happy.show_dog() ;
   matt.show_dog();
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 12.11.2013, 12:42   #4
Сергей.Ш
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 43
По умолчанию

Спасибо ,изменения сделал.Все прошло отлично. Плохо только единственное,что нехватает чуть чуть теории. Почему так ,а не иначе. Для меня в этом коде вопрос остался нерешенным . Что в примере ,приведенном на сайте вшибка?
sergei1960jabber.ru
Сергей.Ш вне форума Ответить с цитированием
Старый 12.11.2013, 14:26   #5
Flay
Пользователь
 
Регистрация: 22.08.2010
Сообщений: 26
По умолчанию

Все элементарно просто.
В уроке идет объявление функции как:
Код:
public:
...
void show_dog(void) ;
А сама функция:
Код:
void dogs::show_breed(void)   // dogs - имя класса, к которому принадлежит функция
А все вызовы идут на show_breed
Отсюда и ошибка, т.к. компилятор понятия не имеет о существовании функции show_breed.

Можно оптимизировать исправление кода объявив вызываемую функцию:
Код:
public:
...
void show_breed(void) ;
и в остальном коде ничего менять не нужно
Flay вне форума Ответить с цитированием
Старый 12.11.2013, 14:39   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Что в примере ,приведенном на сайте вшибка?
В приведенном тобой коде - да. Откуда ты его брал я не знаю.
Насчет чтива - любую книгу по C++ где описаны принципы ООП.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2013, 15:25   #7
Сергей.Ш
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 43
По умолчанию

http://programmersclub.ru/21/ Это адрес конкретно урока 21 нашего сайта.
С примером разобрался.
Flay ,спасибо .
sergei1960jabber.ru
Сергей.Ш вне форума Ответить с цитированием
Старый 12.11.2013, 15:28   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хы. Очепятка автора )
Бывает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2013, 18:08   #9
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

dogs::identificator - указывает что identificator следует искать в области видимости принадлжащей dogs. Если данный идентификтор в dogs не обнаружен компилятор имеет право сгенерировать ошибку.
Igor95 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Первое знакомство с классами Андрей! Общие вопросы C/C++ 7 02.03.2012 22:32
error A2111 в примере 24-го урока Iczeliona 8Observer8 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 27.07.2011 13:58