函数重载和运算符重载
//函数重载
···
#include <iostream>
using namespace std;
#include <iostream>
using namespace std;
class printData
{
public:
void print(int i)
{
cout << "整数为:" << i << endl;
}
{
public:
void print(int i)
{
cout << "整数为:" << i << endl;
}
void print(double f)
{
cout << "浮点数为:" << f << endl;
}
{
cout << "浮点数为:" << f << endl;
}
void print(char c[])
{
cout << "字符串为:" << c << endl;
}
};
{
cout << "字符串为:" << c << endl;
}
};
int main()
{
printData pd;
{
printData pd;
pd.print(520);
pd.print(520.521);
char m[] = "Hello XF!";
pd.print(m);
pd.print(520.521);
char m[] = "Hello XF!";
pd.print(m);
return 0;
}
}
···
运算符重载
···
#include <iostream>
using namespace std;
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对象相加
{
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; //深度
};
{
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; // 把体积存储在该变量中
{
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);
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);
Box2.setLength(12.0);
Box2.setBreadth(13.0);
Box2.setHeight(10.0);
// Box1 的体积
volume = Box1.getVolume();
cout << "Volume of Box1 : " << volume << endl;
volume = Box1.getVolume();
cout << "Volume of Box1 : " << volume << endl;
// Box2 的体积
volume = Box2.getVolume();
cout << "Volume of Box2 : " << volume << endl;
volume = Box2.getVolume();
cout << "Volume of Box2 : " << volume << endl;
// 把两个对象相加,得到 Box3
Box3 = Box1 + Box2;
Box3 = Box1 + Box2;
// Box3 的体积
volume = Box3.getVolume();
cout << "Volume of Box3 : " << volume << endl;
volume = Box3.getVolume();
cout << "Volume of Box3 : " << volume << endl;
return 0;
}
}
···
下面是不可重载的运算符列表:
- .:成员访问运算符
- .*, ->*:成员指针访问运算符
- :::域运算符
- sizeof:长度运算符
- ?::条件运算符
- #: 预处理符号