1 / 1 / 0
Регистрация: 07.10.2015
Сообщений: 96
|
||||||||||||||||
1 | ||||||||||||||||
Использование шаблонов при наследовании, ошибка при компиляции28.10.2016, 21:41. Показов 1901. Ответов 6
Метки нет (Все метки)
При изучении списков написал шаблон протестировал, все работает. После написал класс наследник от шаблона List.h, компилятор выдает ошибки. Помогите понять причину?
Шаблон списка.
21:26:59 **** Incremental Build of configuration Debug for project Spisok **** Info: Internal Builder is used for build g++ -O0 -g3 -Wall -c -fmessage-length=0 -o "src\\StartStack.o" "..\\src\\StartStack.cpp" In file included from ..\src\StartStack.cpp:8:0: ..\src\Stack.h: In member function 'bool Stack<STACKTYPE>::isStackEmpty() const': ..\src\Stack.h:17:42: error: there are no arguments to 'isEmpty' that depend on a template parameter, so a declaration of 'isEmpty' must be available [-fpermissive] bool isStackEmpty()const{return isEmpty();} ^ ..\src\Stack.h:17:42: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) ..\src\Stack.h: In member function 'void Stack<STACKTYPE>:rintStack() const': ..\src\Stack.h:18:31: error: there are no arguments to 'print' that depend on a template parameter, so a declaration of 'print' must be available [-fpermissive] void printStack()const{print();} ^ ..\src\Stack.h: In instantiation of 'void Stack<STACKTYPE>:ush(const STACKTYPE&) [with STACKTYPE = int]': ..\src\StartStack.cpp:15:18: required from here ..\src\Stack.h:15:45: error: 'insertAtFront' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] void push(const STACKTYPE &d){insertAtFront(d);} ~~~~~~~~~~~~~^~~ ..\src\Stack.h:15:45: note: declarations in dependent base 'List<int>' are not found by unqualified lookup ..\src\Stack.h:15:45: note: use 'this->insertAtFront' instead ..\src\Stack.h: In instantiation of 'bool Stack<STACKTYPE>:op(STACKTYPE&) [with STACKTYPE = int]': ..\src\StartStack.cpp:19:26: required from here ..\src\Stack.h:16:47: error: 'removeFromFront' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] bool pop(STACKTYPE &d){return removeFromFront(d);} ~~~~~~~~~~~~~~~^~~ ..\src\Stack.h:16:47: note: declarations in dependent base 'List<int>' are not found by unqualified lookup ..\src\Stack.h:16:47: note: use 'this->removeFromFront' instead
0
|
28.10.2016, 21:41 | |
Ответы с готовыми решениями:
6
Ошибка компиляции при наследовании классов Ошибки компиляции при наследовании и выводе размера класса Использование одинаковых имен при наследовании Ошибка при наследовании |
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
||||||
28.10.2016, 21:47 | 2 | |||||
Компилятор тебе пишет же что надо сделать
Остальное по аналогии.
0
|
8971 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
28.10.2016, 21:51 | 3 | |||||
лекарство:
обратите внимание на использование ключевого слова this
0
|
1 / 1 / 0
Регистрация: 07.10.2015
Сообщений: 96
|
|
28.10.2016, 22:06 [ТС] | 4 |
Спасибо за ответ, но почему тогда в учебнике этого нет? пример взят из учебника.
Добавлено через 2 минуты Все заработало, не понятно почему пример из учебника не работает.
0
|
8971 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
28.10.2016, 22:10 | 5 |
C++, для чего служит указатель "this->"?
Почему компилируется не объявленная переменная в шаблоне? Почему компилируется не объявленная переменная в шаблоне?
0
|
1 / 1 / 0
Регистрация: 07.10.2015
Сообщений: 96
|
|
28.10.2016, 22:32 [ТС] | 6 |
Спасибо большое, я может не доконца понял всех тонкостей компиляции, буду учится, теперь непонятно почпму в учебнике это не предусмотренно, но это уже не по теме.
0
|
28.10.2016, 22:49 | 7 | |||||
0
|
28.10.2016, 22:49 | |
28.10.2016, 22:49 | |
Помогаю со студенческими работами здесь
7
Ошибка при наследовании Ошибка при наследовании Ошибка при наследовании Ошибка при наследовании Ошибка при наследовании Ошибка при наследовании? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |