Imagine you have the following code:
Vector3D class{
   public:
      Vector3D(double=0, double=0, double=0);
      Vector3D(const Vector3D& v){x = v.x;y = v.y;z = v.z;}
   private:
      double x,y,z;
}
And I wanna add two vectors:
Vector3D a(1,2,1);
Vector3D b(2,4,2);
Vector3D c = a + b;
How can I do that without modifying neither of them... I thought of this:
Vector3D class{
   public:
      Vector3D(double=0, double=0, double=0);
      Vector3D(const Vector3D& v){x = v.x;y = v.y;z = v.z;}
      Vector3D(const Vector3D& v, const Vector3D& f){
          x = v.x + f.x;
          y = v.y + f.y;
          z = v.z + f.z;
     }
   private:
      double x,y,z;
}
However, this error appears... "error: ‘Vector3D& Vector3D::operator+(const Vector3D&, const Vector3D&)’ must have either zero or one argument ..." I know that I can only add one argument to the method within a class, but how can I work around this issue in order to add these two vectors without modfying neither?
Thank you in advance!
 
    