32#ifndef WEIGHTEDSAMPLE_H
33#define WEIGHTEDSAMPLE_H
48 template <
typename T>
class WeightedSample:
virtual public Sample<T>
60 WeightedSample (
int dimension = 0 );
62 virtual ~WeightedSample();
64 WeightedSample (
const WeightedSample<T> & my_weighted_sample );
69 double WeightGet ( )
const;
75 void WeightSet (
double weight );
82 template <
typename S>
friend ostream & operator<< (ostream & stream,
96 template <
typename T> WeightedSample<T>::~WeightedSample(){}
98 template <
typename T> WeightedSample<T>::WeightedSample (
const WeightedSample<T> & mws)
104 template <
typename T>
double WeightedSample<T>::WeightGet ( )
const
109 template <
typename T>
void WeightedSample<T>::WeightSet (
double weight )
116 template <
typename S> ostream & operator<< (ostream & stream,
117 WeightedSample<S> & mws)
119 stream <<
"WeightedSample Value = " << (Sample<S> &) mws
120 <<
"Weight = " << mws.Weight << endl;
124 template <
typename T> WeightedSample<T> & WeightedSample<T>::operator= (
const WeightedSample<T> & my_sample)
128 Sample<T> * op1;
const Sample<T> * op2;
129 op1 =
this; op2 = & my_sample;
131 this->Weight = my_sample.WeightGet();
136 template <
typename T> WeightedSample<T> & WeightedSample<T>::operator= (
const Sample<T> & my_sample)
139 Sample<T> * op1;
const Sample<T> * op2;
140 op1 =
this; op2 = & my_sample;