找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2135|回复: 0
收起左侧

运算符重载

[复制链接]
ID:51090 发表于 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;
            }
        }

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


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表