![]() |
[c++] поинтеры на классы
Привет.. у меня есть класс Stack
template<class GrundTyp> class Stack {.... я инициализикую 2 стэка int max=10; Stack<int> N(max); Stack<int> I(max); и хочу передать функции на обработку.... void inverse(Stack<int> *N, Stack<int> *I){ while(!(N.stackempty())){ .... и не работает :( что не так?? :( |
Ну так поинтеры же в функцию передаешь. Наверное нужно так:
void inverse(Stack<int> *N, Stack<int> *I){ while(!(N->stackempty())){ ... |
'inverse' : cannot convert parameter 1 from 'class Stack<int>' to 'class Stack<int> *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called |
Написал же тебе.
Нужно вместо точки стрелку поставить. Вместо while(!(N.stackempty())){ Напиши while(!(N->stackempty())){ |
А в функцию ты их передаёш так
inverse(N,I) или так inverse(&N,&I) Второй вариант правильный. А ещё лучше определи функцию вот так: void inverse(Stack<int> &N, Stack<int> &I) и все проблемы решены. |
во так починил
template<class GrundTyp> void inverse(Stack<GrundTyp> *N, Stack<GrundTyp> *I){ while(!(N->stackempty())){ I->push(N->pop()); } } и ф-ция. inverse<int>(&N,&I); |
| Часовой пояс GMT +4, время: 18:54. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.