imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 18.05.2004, 18:50     # 1
Stasik
Registered User
 
Аватар для Stasik
 
Регистрация: 27.03.2002
Адрес: дома
Сообщения: 1 660

Stasik Известность не заставит себя ждатьStasik Известность не заставит себя ждать
[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())){
....

и не работает что не так??
__________________
Всё будет хорошо!
Stasik вне форума  
Старый 18.05.2004, 22:55     # 2
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Ну так поинтеры же в функцию передаешь. Наверное нужно так:
void inverse(Stack<int> *N, Stack<int> *I){
while(!(N->stackempty())){
...
__________________
Best Regards
alexey_ma вне форума  
Старый 18.05.2004, 23:35     # 3
Stasik
Registered User
 
Аватар для Stasik
 
Регистрация: 27.03.2002
Адрес: дома
Сообщения: 1 660

Stasik Известность не заставит себя ждатьStasik Известность не заставит себя ждать
'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
__________________
Всё будет хорошо!
Stasik вне форума  
Старый 19.05.2004, 00:23     # 4
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Написал же тебе.
Нужно вместо точки стрелку поставить.
Вместо
while(!(N.stackempty())){
Напиши
while(!(N->stackempty())){
__________________
Best Regards
alexey_ma вне форума  
Старый 19.05.2004, 00:38     # 5
joker99
Full Member
 
Аватар для joker99
 
Регистрация: 19.07.2003
Адрес: Israel
Сообщения: 924

joker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форуме
А в функцию ты их передаёш так
inverse(N,I)
или так
inverse(&N,&I)

Второй вариант правильный.

А ещё лучше определи функцию вот так:
void inverse(Stack<int> &N, Stack<int> &I)
и все проблемы решены.
__________________
Столько дел, что и работой занятся некогда...
joker99 вне форума  
Старый 22.05.2004, 13:31     # 6
Stasik
Registered User
 
Аватар для Stasik
 
Регистрация: 27.03.2002
Адрес: дома
Сообщения: 1 660

Stasik Известность не заставит себя ждатьStasik Известность не заставит себя ждать
во так починил

template<class GrundTyp>
void inverse(Stack<GrundTyp> *N, Stack<GrundTyp> *I){
while(!(N->stackempty())){
I->push(N->pop());
}
}

и ф-ция.
inverse<int>(&N,&I);
__________________
Всё будет хорошо!
Stasik вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 22:15.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.