(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&操作符重载的更多相关文章

  1. [置顶] operator overloading(操作符重载,运算符重载)运算符重载,浅拷贝(logical copy) ,vs, 深拷贝(physical copy)

    operator overloading(操作符重载,运算符重载) 所谓重载就是重新赋予新的意义,之前我们已经学过函数重载,函数重载的要求是函数名相同,函数的参数列表不同(个数或者参数类型).操作符重 ...

  2. C++ operator overload -- 操作符重载

    C++ operator overload -- 操作符重载 2011-12-13 14:18:29 分类: C/C++ 操作符重载有两种方式,一是以成员函数方式重载,另一种是全局函数. 先看例子 # ...

  3. 【C++】C++中的操作符重载

    C++中的操作符重载使得对于类对象的操作更加方便和直观,但是对于各种操作符重载的规则以及语法形式,一直以来都是用到哪一个上stackoverflow上查找,在查找了四五次之后,觉得每次麻烦小总结一下. ...

  4. HDU——1005Number Sequence(模版题 二维矩阵快速幂+操作符重载)

    Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  5. c++ 操作符重载和友元

    操作符重载(operator overloading)是C++中的一种多态,C++允许用户自定义函数名称相同但参数列表不同的函数,这被称为函数重载或函数多态.操作符重载函数的格式一般为: operat ...

  6. paip.操作符重载的缺失 Java 的一个大缺点

    paip.操作符重载的缺失 Java 的一个大缺点 #----操作符重载的作用 1.提升用户体验 操作符重载..可以让代码更加自然.... 2.轻松实现代码代码移植 例如   java代码会直接移植到 ...

  7. C#中如何利用操作符重载和转换操作符

    操作符重载 有的编程语言允许一个类型定义操作符应该如何操作类型的实例,比如string类型和int类型都重载了(==)和(+)等操作符,当编译器发现两个int类型的实例使用+操作符的时候,编译器会生成 ...

  8. 操作符重载.xml

    pre{ line-height:1; color:#1e1e1e; background-color:#d2d2d2; font-size:16px;}.sysFunc{color:#627cf6; ...

  9. C++一些注意点之操作符重载

    重载操作符需要注意 (1)重载操作符必须具有一个类类型操作数.不能重载内建类型的操作符. operator +(int,int);//这个是错误的,都为内建类型 operator +(int,clas ...

随机推荐

  1. git分支切换时的时间戳问题

    1.为什么git仓库没有保留文件修改时的时间戳?  摘自:https://git.wiki.kernel.org/index.php/Git_FAQ#Why_isn.27t_Git_preservin ...

  2. BZOJ1899或洛谷2577 [ZJOI2005]午餐

    BZOJ原题链接 洛谷原题链接 解决这题得先想到一个贪心:吃饭慢的先排队. 并不会证明(感觉显然 设\(f[i][j][k]\)表示已经排好了前\(i\)人,第一个队伍需要花费的打饭时间为\(j\), ...

  3. BZOJ 1227 [SDOI2009]虔诚的墓主人 - 扫描线

    Solution 离散化 扫描线, 并用 $rest[i]$ 和 $cnt[i]$ 记录 第$i$列 总共有 $cnt[i]$棵常青树, 还有$rest[i]$ 没有被扫描到. 那么 第$i$ 列的方 ...

  4. kafka的advertised.host.name参数 外网访问配置

    kafka的server.properties文件 ```host.name```开始只绑定在了内部IP上,对外网卡无法访问. 把值设置为空的话会kafka监听端口在所有的网卡上绑定.但是在外网访问时 ...

  5. android xml解析中的null问题

    当我们从服务器或者xml文件加载xml进行解析的时候,往往报告 nullpointer 错误.这是原始代码: String short_name = doc.getElementsByTagName( ...

  6. MySQL 索引 INDEX

    索引用于快速找出在某列中有特定值的行. 不使用索引,MySQL必须从第一条记录开始读完整个表,直到找到相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有一个索引,MySQL能够快速到达一 ...

  7. PHP 5.6 开启CURL HTTPS 类型

    前几日要写微信支付接口,微信支付接口CURL地址是HTTPS.本机测试的是OK的,但是服务器缺提示错误--“ Protocol https not supported or disabled in l ...

  8. STL基础2:vector中使用结构体

    #include <iostream> #include <vector> #include <numeric> #include <algorithm> ...

  9. nginx自旋锁

    #include <stdio.h> #include <stdint.h> #include <unistd.h> /* typedef unsigned lon ...

  10. 移动开发学习touchmove

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...