hocker@enuxha.eas.asu.edu (Charles C. Hocker) (11/10/90)
Hello,
I am new to c++ and am having a problem trying to overload
the operator+. What I am trying to do, is I have a structure and I want
to add structures together.
struct p {
int X, Y, Z;
};
class pclass {
public:
p pnt;
pclass (int x, int y, int z);
};
pclass::pclass (int x=0, int y=0, int z=0)
{
pnt.X = x;
pnt.Y = y;
pnt.Z = z;
}
pclass operator+ (p a, p b)
{
return p (a.X+b.X, a.Y+b.Y, a.Z+b.Z);
}
int main (void)
{
pclass p1 (1, 2, 3),
p2 (2, 3, 4),
p3;
p3 = p1 + p2;
}
When compiling this program in TC++, I receive an errors concerning the
overloading of the operator+. I am writing a graphics program and I would
like to add points without having to add their respective values. This,
by the way, is my first attempt with c++ so I am not quite sure what I
am doing. I have referenced both the TC++ manual, and the ARM.
Sincerly
Charles C. Hocker
hocker@enuxha.eas.asu.eduBruce.Hoult@actrix.co.nz (Bruce Hoult) (11/11/90)
>When compiling this program in TC++, I receive an errors concerning the >overloading of the operator+. I don't see why you need the struct type "p". Confusion between it and pclass is the root of your problem. Changing your operator+ function to pclass operator+ (pclass a, pclass b) { return pclass (a.pnt.X+b.pnt.X, a.pnt.Y+b.pnt.Y, a.pnt.Z+b.pnt.Z); } will fix the immediate problem, and make the program execute correctly.