首页 > 代码库 > inline&friend&操作符重载
inline&friend&操作符重载
(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&操作符重载
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。