zoukankan      html  css  js  c++  java
  • 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;
    };
    安心下来做技术,笑是最大的福气
  • 相关阅读:
    不用循如何计算数组累加和
    mysql通过binlog恢复删除数据
    windows下打开binlog
    mysql的binlog
    枚举实现线程池单例
    AtomicInteger的CAS算法浅析
    不用循环如何计算1累加到100
    MongoDB查询报错:class com.mongodb.MongoSecurityException: Exception authenticating MongoCredential
    Senparc.Weixin微信开发(3) 自定义菜单与获取用户组
    Senparc.Weixin微信开发(2) 消息机制和上下文(Session)
  • 原文地址:https://www.cnblogs.com/JN-PDD/p/6613977.html
Copyright © 2011-2022 走看看