Re: [C++] Derive a class from a tamplate

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Stefano,
Does this work for you? (see the attached file).
Nusret

--- corey taylor <corey.taylor@xxxxxxxxx> wrote:

> stefano,
> 
>   After taking a quick look at valarray, it seems
> that operator
> overloads that declare operator+ for valarray are
> non-member
> functions.
> 
>   You will need to declarea set of operator+
> overloads for mvector in
> the same style as valarray overloads.  I think this
> is the problem
> you're seeing.
> 
>   Is there a reason you're trying to force a copy
> with the code above?
> 
> corey
> 
> On 7/31/05, stefano luceri
> <stefano@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
> > Hello to all .... excuse for my bad english
> > 
> > I've the following problem writing a simple
> program. I would use the
> > metods of std::valarray class adding some self
> writed method for elemnts
> > of double type.
> > 
> > I've thought something like this:
> > 
> > /****************************/
> > using namespace std;
> > 
> > class mvector : public valarray<double>
> > {
> > mvector();
> > mvector(int size);
> > }
> > 
> > mvector :: mvector() : valarray<double>() {}
> > mvector :: mvector(int size) :
> valarray<double>(size) {}
> > 
> > int main()
> > {
> >    mvector v(3);
> > 
> >    v = (v+2.0);
> > }
> > 
> > /*****************************/
> > 
> > Compiling this code I obtain the following error:
> > 
> > geom.cpp: In function `int main()':
> > geom.cpp:38: error: no match for 'operator=' in 'v
> = std::operator+(const
> >   std::valarray<_Tp>&, const _Tp&) [with _Tp =
> double]((&1.0e+0))'
> > geom.cpp:22: error: candidates are: mvector&
> mvector::operator=(const
> > mvector&)
> > make: *** [geom.o] Error 1
> > 
> > Why can't I use the operator = like I do with
> valarray?
> > 
> > 
> > 
> > 
> > 
> >
> 



		
____________________________________________________
Start your day with Yahoo! - make it your home page 
http://www.yahoo.com/r/hs 
 
/****************************/
#include<valarray>
using namespace std;

class mvector : public valarray<double>
{
public:
mvector();
mvector(int size);
mvector& operator=(valarray<double>& arg){
	return (mvector&)(this/*maybe not necessary*/->valarray<double>::operator=(arg));
}
};

mvector::mvector() : valarray<double>() {}
mvector::mvector(int size): valarray<double>(size){}

int main()
{
   mvector v(3);
  
   v = (mvector&)((valarray<double>&)v + 2.0);
}

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux