class - c++ call functions in copy constructor -
i have
public: largersetpartd(unsigned maxvalue); largersetpartd(const largersetpartd &); //copy constructor void printelements(); // prints members void set_union(const largersetpartd &); bool ismember(unsigned int); private: unsigned long values; unsigned maxelementvalues; in set_union trying do
largersetpartd *temparray = new largersetpartd(maxelementvalue); //this part of code saves old array composed of values temparray. if ( temparray->ismember(i) || other.ismember(i)) however other.ismember(i) not working. tried other->ismember(i) , doesnt work. can not touch/change public functions cant add const in member. im not sure do. appreciated. error message is
passing ‘const largersetpartd’ ‘this’ argument discards qualifiers [-fpermissive] copy constructor: largersetpartd::largersetpartd(const largersetpartd &other) { values = other.values; maxelementvalue = other.maxelementvalue; }
assuming other const largersetpartd & argument set_union, trying call non-const method on const object, not permitted.
since can't change signature of public methods, create temporary non-const copy of other , call method on that:
largersetpartd tmp_other(other); if ( temparray->ismember(i) || tmp_other.ismember(i)) ...
Comments
Post a Comment