函数重载和运算符重载

//函数重载
···
#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:长度运算符
  • ?::条件运算符
  • #: 预处理符号
posted @ 2020-10-21 12:08  烟火流沙  阅读(110)  评论(0编辑  收藏  举报