Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > работа с шаблонным классом


Автор: :)PROD[; 23.11.2007, 09:29
Здравствуйте. вобщем есть шаблонный класс CFraction. он должен хранить и работать с 3мя переменными заранее неизвестного типа. проблема возникла при передаче значений этих переменных
вот исходник:
Код

#include <stdio.h>
#include <iostream.h>
#include <conio.h>

// шаблонный класс
template <class A>
class CFraction{
private:
    A *chis, *znam, *celoe;
public:
    CFraction();
    void In(A&,A&,A&);
    void Out();
    //~CFraction();
};

template <class A>
CFraction<A>::CFraction(){
   chis = new A;
   znam = new A;
   celoe= new A;
}
/*template <class A>
CFraction<A>::~CFraction(){
  delete chis;
  delete znam;
  delete celoe;
} */
template <class A>
void CFraction<A>::Out(){
cout<<chis<<endl; // вот тут надо бы увидеть значения переданных параметров, а вместо этого выходит что-то похожее на их адреса
cout<<znam<<endl;
cout<<celoe<<endl;

}
template <class A>
void CFraction<A>::In(A &ch,A &zn,A &cl){
chis=&ch;
}


main(){
//
int cl=6,zn=6,ch=6;
CFraction<int> simple;
simple.In(ch,zn,cl);
simple.Out();
getch();
}

 smile  помогите плз. срочно надо (шаблонные классы использовать надо обязательно, условие задания)

Автор: orthrus 23.11.2007, 09:44
поменяй вот это: 

Код

template <class A>
void CFraction<A>::Out(){
cout<<chis<<endl; // вот тут надо бы увидеть значения переданных параметров, а вместо этого выходит что-то похожее на их адреса
cout<<znam<<endl;
cout<<celoe<<endl;

}
template <class A>
void CFraction<A>::In(A &ch,A &zn,A &cl){
chis=&ch;
}


на это:

Код

template <class A>
void CFraction<A>::Out(){
cout<<*chis<<endl; // вот тут надо бы увидеть значения переданных параметров, а вместо этого выходит что-то похожее на их адреса
cout<<*znam<<endl;
cout<<*celoe<<endl;

}
template <class A>
void CFraction<A>::In(A &ch,A &zn,A &cl){
*chis=ch;
*znam=zn;
*celoe=cl;
}

Автор: :)PROD[; 23.11.2007, 21:11
спасибо  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)