• 函数重载和运算符重载


    //函数重载
    ···
    #include <iostream>
    using namespace std;
    class printData
    {
    public:
     void print(int i)
     {
      cout << "整数为:" << i << endl;
     }
     void print(double f)
     {
      cout << "浮点数为:" << f << endl;
     }
     void print(char c[])
     {
      cout << "字符串为:" << c << endl;
     }
    };
    int main()
    {
     printData pd;
     pd.print(520);
     pd.print(520.521);
     char m[] = "Hello XF!";
     pd.print(m);
     return 0;
    }
    ···
     
    运算符重载
    ···
    #include <iostream>
    using namespace std;
    class Box
    {
    public:
     double getVolume(void)
     {
      return length * breadth * height;
     }
     void setLength(double len)
     {
      length = len;
     }
     void setBreadth(double bre)
     {
      breadth = bre;
     }
     void setHeight(double hei)
     {
      height = hei;
     }
     //重载+运算符,用于把两个Box对象相加
     Box operator+(const Box& b)
     {
      Box box;
      box.length = this->length + b.length;
      box.breadth = this->breadth + b.breadth;
      box.height = this->height + b.height;
      return box;
     }
    private:
     double length; //长度
     double breadth; //宽度
     double height; //深度
    };
    int main()
    {
     Box Box1;                // 声明 Box1,类型为 Box
     Box Box2;                // 声明 Box2,类型为 Box
     Box Box3;                // 声明 Box3,类型为 Box
     double volume = 0.0;     // 把体积存储在该变量中
     // Box1 详述
     Box1.setLength(6.0);
     Box1.setBreadth(7.0);
     Box1.setHeight(5.0);
     // Box2 详述
     Box2.setLength(12.0);
     Box2.setBreadth(13.0);
     Box2.setHeight(10.0);
     // Box1 的体积
     volume = Box1.getVolume();
     cout << "Volume of Box1 : " << volume << endl;
     // Box2 的体积
     volume = Box2.getVolume();
     cout << "Volume of Box2 : " << volume << endl;
     // 把两个对象相加,得到 Box3
     Box3 = Box1 + Box2;
     // Box3 的体积
     volume = Box3.getVolume();
     cout << "Volume of Box3 : " << volume << endl;
     return 0;
    }
    ···

    下面是不可重载的运算符列表:

    • .:成员访问运算符
    • .*, ->*:成员指针访问运算符
    • :::域运算符
    • sizeof:长度运算符
    • ?::条件运算符
    • #: 预处理符号
  • 相关阅读:
    类的定义
    面向对象与面向过程介绍
    跨目录导入模块
    正则表达式re模块
    常用工具包(模块)
    生成器generator
    闭包
    命名空间name space
    函数的递归
    POJ1062
  • 原文地址:https://www.cnblogs.com/TheFly/p/13851612.html
Copyright © 2020-2023  润新知