This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: [C++] Derive a class from a tamplate
- From: Nusret BALCI <balcinus at yahoo dot com>
- To: stefano luceri <stefano at communicationfactory dot it>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Sun, 31 Jul 2005 13:04:30 -0700 (PDT)
- Subject: Re: [C++] Derive a class from a tamplate
Hey,
it seems that only one single cast is enough. Sorry,
I'm not a professional programmer: this seems to work
fine though..
--- stefano luceri <stefano@communicationfactory.it>
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::mvector() : valarray<double>() {}
mvector::mvector(int size): valarray<double>(size){}
int main()
{
mvector v(3);
v = (mvector&)(v + 2.0);
}