[gnu.g++.help] overloading of operators

hawley@nethris.ucr.edu (brian hawley) (11/17/90)

The following has me stumped.

I'm implementing a one dimensional bitvector class.  I want as part
of its operators, union (+), set difference (-).

Other class's use this, and pass as an argument to the constructor,
the size of the bitvector.  For this reason, I had to declare the
instances of the bitvectors as pointers to the bitvector class. (
the size isn't known until runtime.

i.e.

class BitVector {
		char *colptr;
		public:
			BitVector(int size);
			friend BitVector &operator +(BitVector &, BitVector &);
			friend BitVector &operator -(BitVector &, BitVector &);
			BitVector &operator =(BitVector &);
}

// note: the compiler wouldn't let me declare tham as anything but &

class foobar {
	BitVector *vector;
	public:
		foobar(some stuff);
}


At some point during the code, the following call will be made:

foobar::foobar(some stuff) {

	vector = new BitVector(size);
}

In other routines, I want to perform union, difference, (and other
operators) as well as assignments.

I can only get things to partially work, and the c++ book I have 
(Dewhurst & Stark) seems only to talk about static instances of
classes in relation to overloaded operators.  So it is little help.


Does anyone have any insight or info?  I've tried several things, and
am still unable to get what I want.


Thanks in advance for any help,

Brian


------------------------------------------------------------------------------
Brian N. Hawley                            Internet: hawley@ucrmath.ucr.edu
Dept. of Math & Computer Science           uucp: {ucsd, uci}!ucrmath!hawley
Univ. of Calif., Riverside, CA 92521       phone: (714) 787-4645