Demonstrates overloading the addition operator for two class objects

image_pdfimage_print

   

/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa

Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/

//
// Plus.cs -- demonstrates overloading the addition operator for two
//            class objects.
//
//            Compile this program with the following command line:
//                C:>csc Plus.cs
//
namespace nsOverload
{
    using System;
    
    public class PlusclsMain
    {
        static public void Main ()
        {
            clsPoint point1 = new clsPoint (12, 28, "This is part");
            clsPoint point2 = new clsPoint (42, 64, " of a string");
            clsPoint point3 = point1 + point2;
            Console.WriteLine ("Results for point3:");
            Console.WriteLine ("	Point is at " + point3);
            Console.WriteLine ("	str = " + point3.str);
        }
    }
    class clsPoint
    {
        public clsPoint () { }
        public clsPoint (int x, int y, string str)
        {
            m_cx = x;
            m_cy = y;
            this.str = str;
        }
        private int m_cx = 0;
        private int m_cy = 0;
        public int cx
        {
            get {return (m_cx);}
            set {m_cx = value;}
        }
        public int cy
        {
            get {return (m_cy);}
            set {m_cy = value;}
        }
      
      public string str = "";

        static public clsPoint operator +(clsPoint pt1, clsPoint pt2)
        {
            clsPoint point = new clsPoint();
            point.cx = pt1.cx + pt2.cx;
            point.cy = pt1.cy + pt2.cy;
            point.str = pt1.str + pt2.str;
            return (point);
        }

        public override string ToString()
        {
            return ("(" + m_cx + "," + m_cy + ")");
        }
    }
}