码迷,mamicode.com
首页 > 其他好文 > 详细

inline&friend&操作符重载

时间:2017-03-25 00:12:09      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:建议   关系   span   继承   operator   基类   结合   作用   log   

(1).inline:是一种以空间换时间的做法省去调用函数的额外开销,提高程序的运行效率,它对于编译器而言只是一种建议
(2).友元函数:是可以直接访问类的private成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明
     友元类:友元类的所有成员函数都可以是另一个类的友元函数,都可以访问另一个类的非公有成员
     友元优点:提高程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销)
     友元缺点:破坏了类的封装性和隐藏性使得非成员函数可以访问类的private成员
(3).操作运算符重载:
     规则:
     (1).不可以被重载的操作运算符 "."(类属关系运算符)、".*"(成员指针运算符)、"::"(作用域运算符)、"?:"(三目运算符)、sizeof运算符
     ***除了赋值号(=)外,基类中重载的运算符都将被派生类继承
     (2).只能重载C++中已有的运算符,不能创建新的运算符
     (3).运算符重载实质上是函数重载,因此编译程序对运算符重载的选择,遵循函数重载的原则
     (4).重载之后的运算符不能改变呢运算符的优先级和结合性,也不能改变运算符操作数的个数及语法结构
class Complex
{
    Complex(const double _dReal,const double _dImage);
    Complex(const Complex& complex);
    ~Complex();
    Complex & operator=(const Complex& complex);
    Complex operator+(const Complex complex);
    Complex operator-(const Complex complex);
    Complex operator*(const Complex complex);
    Complex operator/(const Complex complex);
    Complex operator+=(const Complex complex);
    Complex operator-=(const Complex complex);
    Complex operator*=(const Complex complex);
    Complex operator/=(const Complex complex);
    bool operator<(const Complex complex);
    bool operator<=(const Complex complex);
    bool operator>(const Complex complex);
    bool operator>=(const Complex complex);
    bool operator==(const Complex complex);
    bool operator!=(const Complex complex);
private:
    double _dReal;
    double _dImage;
};

 

inline&friend&操作符重载

标签:建议   关系   span   继承   operator   基类   结合   作用   log   

原文地址:http://www.cnblogs.com/JN-PDD/p/6613977.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!