c++ 重载负号c++
时间: 2023-11-03 08:57:21 浏览: 46
重载运算符是指在类中重新定义某个运算符的功能。在C++中,通过重载运算符,我们可以改变运算符对于特定类型的操作行为。在引用中,这个例子展示了如何重载字符串类的加号运算符,以实现字符串的拼接功能。在引用中,展示了如何重载类的前置自增运算符,以实现特定的操作行为。在引用中,展示了如何重载类的负号运算符,以实现特定的操作行为。
回答完问题后的
相关问题
c++ 重载+运算符
C++ 中的运算符重载是指给已有的运算符赋予新的功能或含义。通过重载运算符,我们可以定义自定义的数据类型在使用运算符时的行为。
要重载一个运算符,需要使用特定的函数名和语法。以下是一些常见的运算符以及对应的函数名:
- 一元运算符:重载时只需要一个参数
- 一元正号:`+` ==> `operator+`
- 一元负号:`-` ==> `operator-`
- 逻辑非:`!` ==> `operator!`
- 二元运算符:重载时需要两个参数
- 加法:`+` ==> `operator+`
- 减法:`-` ==> `operator-`
- 乘法:`*` ==> `operator*`
- 除法:`/` ==> `operator/`
- 取余:`%` ==> `operator%`
- 等于:`==` ==> `operator==`
- 不等于:`!=` ==> `operator!=`
- 赋值运算符:重载时需要两个参数
- 赋值:`= ` ==> `operator=`
- 加法赋值:`+=` ==> `operator+=`
- 减法赋值:`-=` ==> `operator-=`
- 乘法赋值:`*=` ==> `operator*=`
- 除法赋值:`/=` ==> `operator/=`
除了以上列举的运算符,C++ 还提供了其他一些运算符可以进行重载。在重载运算符时,需要注意运算符的语义和预期行为,以及遵循一些重载运算符的约定和规则。
C++重载Franction()
在C++中,可以通过函数重载来实现对构造函数的重载。如果要重载Fraction()构造函数,可以按照以下方式进行:
```c++
class Fraction {
private:
int numerator;
int denominator;
public:
Fraction() { // 默认构造函数
numerator = 0;
denominator = 1;
}
Fraction(int num, int den) { // 带参数的构造函数
numerator = num;
denominator = den;
}
Fraction operator+(const Fraction& f) { // 加法运算符重载
int num = numerator * f.denominator + f.numerator * denominator;
int den = denominator * f.denominator;
return Fraction(num, den);
}
Fraction operator-(const Fraction& f) { // 减法运算符重载
int num = numerator * f.denominator - f.numerator * denominator;
int den = denominator * f.denominator;
return Fraction(num, den);
}
Fraction operator*(const Fraction& f) { // 乘法运算符重载
int num = numerator * f.numerator;
int den = denominator * f.denominator;
return Fraction(num, den);
}
Fraction operator/(const Fraction& f) { // 除法运算符重载
int num = numerator * f.denominator;
int den = denominator * f.numerator;
return Fraction(num, den);
}
Fraction operator-() { // 负号运算符重载
return Fraction(-numerator, denominator);
}
// 重载Fraction()构造函数
Fraction(int num) {
numerator = num;
denominator = 1;
}
// 显示分数的方法
void display() {
cout << numerator << "/" << denominator << endl;
}
};
```
在上述代码中,我们通过重载Fraction()构造函数,实现了带一个参数的构造函数,用于创建分母为1的分数对象。同时,我们还实现了加减乘除等运算符的重载,以及负号运算符的重载,方便我们对分数对象进行各种运算操作。