inline&friend&操作符重载
Posted JN-PDD
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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&操作符重载的主要内容,如果未能解决你的问题,请参考以下文章
Facebook GraphAPI '/me/friends?fields=id,name,email,picture&limit=500' 不返回电子邮件
云原生 Meetup | KubeSphere & Friends上海站分享大会讲座资料整理
[uva11722&&cogs1488]和朋友会面Joining with Friend
Kotlin 之 inline & noline & crossinline