【面向对象程序设计常见面试题】运算符重载的三种方式?(7)
2014-03-28 00:04
357 查看
1、友元函数
class X{
friend 返回类型 operator 运算符(形参数);
}
返回类型 operator 运算符(形参表)
{
函数体
}
2、类成员函数
class X{
返回类型 operator 运算符(形参数);
}
返回类型 class::operator 运算符(形参表)
{
函数体
}
class X{
friend 返回类型 operator 运算符(形参数);
}
返回类型 operator 运算符(形参表)
{
函数体
}
class X{
friend 返回类型 operator 运算符(形参数);
}
返回类型 operator 运算符(形参表)
{
函数体
}
class X{
friend 返回类型 operator 运算符(形参数);
}
返回类型 operator 运算符(形参表)
{
函数体
}
#include <iostream> using namespace std; class Complex{ public: Complex(double r=0.0,double i=0.0); friend Complex operator+ (Complex& a,Complex& b); friend Complex operator++ (Complex& a); void show(); private: double real; double imag; }; Complex::Complex(double r,double i) { real = r; imag = i; } void Complex:: show() { cout<<real<<" "<<imag<<endl; } Complex operator+ (Complex& a,Complex& b) { Complex temp; temp.real = a.real+b.real; temp.imag = a.imag+b.imag; return temp; } Complex operator++ (Complex& a) { ++a.real; ++a.imag; return a; } int main() { Complex x1(20,5); Complex x2(21,5); Complex x3; x3 = x1+x2; x3.show(); +x3; x3.show(); return 0; }
2、类成员函数
class X{
返回类型 operator 运算符(形参数);
}
返回类型 class::operator 运算符(形参表)
{
函数体
}
#include <iostream> using namespace std; class Complex{ public: Complex(double r=0.0,double i=0.0); Complex operator+ (Complex& a); Complex operator++ (); void show(); private: double real; double imag; }; Complex::Complex(double r,double i) { real = r; imag = i; } void Complex:: show() { cout<<real<<" "<<imag<<endl; } Complex Complex::operator+ (Complex& a) { Complex temp; temp.real = a.real+real; temp.imag = a.imag+imag; return temp; } Complex Complex::operator++ () { ++real; ++imag; return *this; } int main() { Complex x1(20,5); Complex x2(21,5); Complex x3; x3 = x1+x2; x3.show(); +x3; x3.show(); return 0; }
class X{
friend 返回类型 operator 运算符(形参数);
}
返回类型 operator 运算符(形参表)
{
函数体
}
class X{
friend 返回类型 operator 运算符(形参数);
}
返回类型 operator 运算符(形参表)
{
函数体
}
相关文章推荐
- 【面向对象程序设计常见面试题】虚函数是怎么实现的?(已阅)
- 25_面向对象程序设计(原型【八】继承的三种方式
- 【面向对象程序设计常见面试题】判断题
- 【面向对象程序设计常见面试题】多继承与虚函数之间的关系(已阅)
- 【面向对象程序设计常见面试题】函数模板与类模板有什么区别?(44)
- 【面向对象程序设计常见面试题】数组在做函数实参的时候会转变为什么类型?
- 【面向对象程序设计常见面试题】派生中构造函数的几点说明(xx)
- 【面向对象程序设计常见面试题】类中成员变量怎么进行初始化?(11)
- 【面向对象程序设计常见面试题】流运算符为什么不能通过类的成员函数重载?一般怎么解决?(7)
- 【面向对象程序设计常见面试题】多态的作用?(已阅)
- 【面向对象程序设计常见面试题】类的声明和实现的分开的好处?
- 【面向对象程序设计常见面试题】赋值运算符和拷贝构造函数的区别与联系?(3)
- 【面向对象程序设计常见面试题】什么叫静态关联,什么叫动态关联
- 【面向对象程序设计常见面试题】友元关系有什么特性?(22)
- 【面向对象程序设计常见面试题】什么叫智能指针?
- 18--26 面向对象程序设计25(继承的三种方式)
- 【面向对象程序设计常见面试题】对对象成员进行初始化的次序是什么?(11)
- 【面向对象程序设计常见面试题】派生新类的声明(xx)
- 【面向对象程序设计常见面试题】虚函数的定义的几点说明(已阅)
- 【面向对象程序设计常见面试题】虚基类的几点说明(xx)