This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[C++] Derive a class from a tamplate


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?






Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]