使用全局函数重载
#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();
}
分享到:
相关推荐
125.C++ 重载运算符和重载函数.txt
对于C++重载的使用方法学习的好例子 1、符号重载的方法使用。
自己做的小型分数运算器 实现了运算符的重载。
C++运算符重载:赋予运算符另一种作用,实现自定义类型的运算C++运算符重载内容: 1.友元重载 2.类重载 3.输入输出流重载
c++运算符重载,重载运算符
重载加法运算符+及大于运算符>,测试输入的长度能否构成一个三角形。构成三角形的条件是任意两边之和大于第三边。
(1)C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载。例如,有人觉得BASIC中用“* *”作为幂运算符很方便,也想在C++中将“* *”定义为幂运算符,用“3* *5”表示35,这是不行的。 (2)C++允许...
当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载决策。 C++ 中的函数重载 在同一个作用...
C++ 函数重载 运算符重载 类型转化 符合课本 自己写的 绝对运行 有用
最近在学习C++运算符重载,这是我经过整理之后的一点资料,拿出来和大家分享,希望能对大家有所帮助。另外,选择C++开发的同志们,加油^_^一起努力
C++允许重载的运算符和不允许重载的运算符 C++中绝大部分的运算符允许重载,具体规定见表 不能重载的运算符只有5个: . (成员访问运算符) .* (成员指针访问运算符) :: (域运算符) sizeof (长度运算符) ?: ...
一个c++运算符重载例子.属于原创,代码比较清晰
C++_运算符重载_各类详细介绍 仅供参考
c++ 运算符重载的综合demo,知识点众多,内容强大。
C++单目运算符重载 单目运算符只有一个操作数,如!a,-b,&c,*p,还有最常用的++i和–i等。重载单目运算符的方法与重载双目运算符的方法是类似的。但由于单目运算符只有一个操作数,因此运算符重载函数只有一个参数...
详细介绍 C++运算符重载 的PPT 文中部分内容: 下标运算符“[ ]”重载 C++把下标运算符[ ]看成一个双目运算符,其操作数为<基本表达式>和<表达式>,对应的运算符为operator[ ],必须重载为一个成员函数。对于下标...
在C++中如何重载运算符
该ppt详细介绍了c++中的运算符重载,对学习者很有帮助。
重载增量运算符在运用中的总结,主要左值与右值的区别