zoukankan      html  css  js  c++  java
  • 重载运算符

    利用现有运算符,针对自定义类或结构,简化地自定义某运算操作,一般选用有相关性的既有运算符

    操作数至少有一个是类或结构

    不能改变运算符优先级

    不能重载的运算符: =,&&,||,[],()等

    class Program
        {
            static void Main(string[] args)
            {
                Pet P = new Dog("pp");
                P++;//++有了重载定义的计算方式
                P.ShowAge();
            }
    
        }
        abstract public class Pet
        {
            protected string Name;
            public Pet(string name)
            {
                Name = name;
            }
            public void PrintName()
            {
                Console.WriteLine("Print" + Name);
            }
    
           
            abstract public void Speak();
        }
       abstract public class Pet
        {
            protected string Name;
            protected int Age;
            public Pet(string name)
            {
                Name = name;
                Age = 0;
            }
            public void PrintName()
            {
                Console.WriteLine("Print" + Name);
            }
            public static Pet operator ++(Pet pet)//重载运算符++//针对类Pet
            {
                ++pet.Age;
                return pet;
            }
            public void ShowAge()
            {
                Console.WriteLine(Name+ " Age = " + Age);
            }
         
            abstract public void Speak();
        }
        public class Dog : Pet
        {
            static int Num;
            static Dog()
            {
                Num = 0;
            }
            public Dog(string name) : base(name)
            {
                ++Num;
            }
            new public void PrintName()
            {
                Console.WriteLine("子print名字是 " + base.Name);
            }
           
            {
                Console.WriteLine("子说,我是狗狗 " + Name);
            }
            static public void ShowNum()
            {
                Console.WriteLine("Dog's number = " + Num);
            }
            public void Lost()
            {
                --Num;
                Console.WriteLine(Name + " is Lost!");
            }
    
         
        }
     
  • 相关阅读:
    字符串匹配算法之Rabin-Karp算法
    算法导论之最近顶点对
    php连mssql中文乱码问题
    Trie树
    PAT 1057. Stack (30)
    PAT 1033. To Fill or Not to Fill (25)
    PAT 1034. Head of a Gang (30)
    PAT 1075. PAT Judge (25)
    spring框架资料
    Spring Security资料
  • 原文地址:https://www.cnblogs.com/cicily/p/10936538.html
Copyright © 2011-2022 走看看