IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   [c++] поинтеры на классы (https://www.imho.ws/showthread.php?t=59100)

Stasik 18.05.2004 18:50

[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())){
....

и не работает :( что не так?? :(

alexey_ma 18.05.2004 22:55

Ну так поинтеры же в функцию передаешь. Наверное нужно так:
void inverse(Stack<int> *N, Stack<int> *I){
while(!(N->stackempty())){
...

Stasik 18.05.2004 23:35

'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

alexey_ma 19.05.2004 00:23

Написал же тебе.
Нужно вместо точки стрелку поставить.
Вместо
while(!(N.stackempty())){
Напиши
while(!(N->stackempty())){

joker99 19.05.2004 00:38

А в функцию ты их передаёш так
inverse(N,I)
или так
inverse(&N,&I)

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

А ещё лучше определи функцию вот так:
void inverse(Stack<int> &N, Stack<int> &I)
и все проблемы решены.

Stasik 22.05.2004 13:31

во так починил

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.