使用全局函数重载
#include <IOSTREAM.H>
class A
{
public:
A(int i):i(i){};
void print(){cout<<i<<endl;}
friend A operator + (A &a, A &b);//声明为友元
friend A operator ++(A &a, int);
friend A& operator ++(A &a);
friend A& operator +=(A &a, A &b);
protected:
int i;
private:
};
A operator + (A &a, A &b){//重载 a + b
return A(a.i + b.i);
}
A operator ++(A &a, int){//重载 a++
return A(a.i++);
}
A& operator ++(A &a){//重载 ++a
a.i++;
return a;
}
A& operator +=(A &a, A &b){//重载 +=
a.i += b.i;
return a;
}
void main(){
A a(5);
A b(3);
(a += b).print();
}
使用成员函数重载
#include <IOSTREAM.H>
class A
{
public:
A(int i):i(i){};
void print(){cout<<i<<endl;}
A operator + (A &b);
A& operator += (A &b);
A operator ++(int);
A& operator ++();
protected:
int i;
private:
};
A A::operator + (A &b){//重载 +
return A(i + b.i);
}
A& A::operator+= (A &b){
i += b.i;
return *this;
}
A A::operator++ (int){//i++
return A(i++);
}
A& A::operator ++(){//++i
i++;
return *this;
}
void main(){
A a = 2;
A b = 3;
(++a).print();
(b++).print();
}
分享到:
相关推荐
在C++编程中,重载运算符是一种强大的特性,它允许我们为已有的运算符赋予新的含义,以适应特定的数据类型。在这个特定的项目中,我们重载了两个运算符:加法运算符"+"和大于运算符">",用于判断三个边长是否能构成...
在C++编程语言中,重载运算符是一种强大的特性,允许我们为已有的运算符赋予新的含义或行为,以适应自定义数据类型。本项目"分数运算器"就是利用这一特性来实现分数的加减乘除等运算,并通过界面提供用户友好的交互...
在C++编程语言中,重载(Overload)是一种重要的特性,它允许程序员使用相同的函数名或运算符但带有不同的参数列表。通过这种方式,我们可以在不同的上下文中为一个标识符赋予不同的含义,使得代码更加清晰且易于...
125.C++ 重载运算符和重载函数.txt
在C++编程语言中,重载运算符是一种强大的特性,允许程序员为自定义数据类型赋予与内置类型相似的行为。在提供的文件示例中,展示了两种不同的运算符重载方法:非运算符重载和运算符重载作为类的成员函数。我们将...
C++运算符重载:赋予运算符另一种作用,实现自定义类型的运算C++运算符重载内容: 1.友元重载 2.类重载 3.输入输出流重载
C++常用运算符重载简介 C++运算符重载是指将操作符赋予新的意义,以便在用户定义的类中使用。运算符重载的目的在于将操作符添加到自已的类中,以方便类对象之间的运算,例如使用+、-、*、/等运算符。 为什么要重载...
C++重载增量运算符 C++中的增量运算符是非常重要的概念,它可以使得编程更加便捷和高效。然而,在使用增量运算符时,我们需要区分前增量和后增量的区别,这是因为它们的返回值和参数处理方式不同。 1. 前增量...
在C++编程语言中,重载运算符是一种强大的特性,允许我们为已有的运算符赋予新的含义,以适应特定的数据类型。在这个例子中,我们关注的是重载"=="和"!="运算符,以便用于字符串的比较。这在VS2010这样的开发环境中...
(1)C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载。例如,有人觉得BASIC中用“* *”作为幂运算符很方便,也想在C++中将“* *”定义为幂运算符,用“3* *5”表示35,这是不行的。 (2)C++允许...
当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载决策。 C++ 中的函数重载 在同一个作用...
在C++编程语言中,运算符重载是一项重要的特性,它允许我们为已有的运算符赋予新的含义,以便在自定义类型上使用。本篇内容将深入探讨C++中的运算符重载,...因此,在设计类时应谨慎考虑是否需要以及如何重载运算符。
在C++编程语言中,运算符重载是一种强大的特性,允许我们为已有的运算符赋予新的含义,以便在自定义类型(如这里的复数类`complex`)上使用。以下是关于C++中运算符重载的详细解释: 1. **非运算符重载实现复数加法...
首先,我们要理解C++中的运算符重载。运算符重载允许我们在不同的上下文中为同一个运算符赋予不同的含义,这在处理自定义数据类型如矩阵时非常有用。例如,我们可以通过重载"+"运算符来实现矩阵的相加,重载"-...
C++允许重载的运算符和不允许重载的运算符 C++中绝大部分的运算符允许重载,具体规定见表 不能重载的运算符只有5个: . (成员访问运算符) .* (成员指针访问运算符) :: (域运算符) sizeof (长度运算符) ?: ...
重载运算符的方法是定义一个函数,该函数的名称是特殊的,通常以"operator"开头,后面跟着要重载的运算符。例如,我们可以为自定义的复数类重载"+"运算符进行复数相加: ```cpp class Complex { public: Complex ...
根据提供的实验报告,我们可以深入探讨C++中的运算符重载技术以及其实现细节。运算符重载是C++中的一项重要特性,它允许用户自定义已存在的运算符在用户自定义类型的操作。通过运算符重载,我们可以为自定义类型提供...
这个实例将探讨如何通过成员函数和非成员函数两种方式来重载运算符,以及如何结合友元函数来实现特定的操作。首先,让我们深入理解运算符重载的概念。 **运算符重载原理** 运算符重载并不创建新的运算符,而是为已...
### C++运算符重载详解 #### 一、前言 C++允许用户自定义类或...通过适当地重载运算符,可以使代码更加直观和易于理解,提高程序的可读性和可维护性。在实际开发中,合理地使用运算符重载可以极大地提高编程效率。