标题: 运算符重载 [打印本页]

作者: xiaojuan    时间: 2014-9-17 02:38
标题: 运算符重载
                                                                                                    运算符重载,在C++里我已经学习过,不过对于这个概念我还是有那么一点点模糊,而且在C#里它有更严格的要求。关于运算符的重载,使用operator来指明即将要重载的运算符,后面是参数表,我自己编写了一个简单的C#代码来简要的说明C++中的Cstring,这个过程可能你会觉得有点多余。

        class Cstring
        {
            string text;
            public string Text//                        属性查看器,在C++里是没有这个概念的,用于获取或设置某个成员
            {
                get;
                set;
            }
            public Cstring()//                            构造函数
            {
                Text = null;
            }
            public Cstring(string str)//            带一个参数的构造函数
            {
                Text = str.ToString();
            }
            public static Cstring operator +(Cstring lhs, Cstring rhs)//         连接字符串
            {
                Cstring str;
                str = new Cstring();
                str.Text = lhs.Text;
                str.Text += rhs.Text;
                return str;
            }
            public static Cstring operator *(Cstring lhs, int mul)//                  复制字符串
            {
                Cstring str;
                str = new Cstring();
                while(mul!=0)
                {
                    str.Text += lhs.Text;
                    mul--;
                }
                return str;
            }
        }

  运算符的重载大概意思也就是返回(生成)一个新对象,并将重载运算符当作一个方法(函数)来看待。我是这么理解的。







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1