zoukankan      html  css  js  c++  java
  • (转)初识operator重载操作符

    #include<iostream>
    using namespace std;
    class myclass{
         int i;
    public:
         myclass(int k = 0):i(k){};      //bool operator==(const myclass&);
         friend bool operator==(const myclass& a,const myclass& b);
    }; //bool myclass::operator==(const myclass& a){
    //     if(this->i==a.i)
    //          return 1;
    //     else
    //          return 0;
    //}

    bool operator==(const myclass& a,const myclass& b){
         if(a.i==b.i)
              return 1;
         else
              return 0;
    }
    int main(){
         myclass a(1),b(2);
         cout<<(a==b)<<endl;
    }
    在用类成员方式重载重载操作符时,我写成了这个形式bool myclass::operator==( const myclass& a,const myclass& b)报错说:must take exactly one argument,原因如下:
    用成员方式重载运算符,   不能改变参数的个数  ,二元运算符用成员重载时,   只需要一个参数,   另一个参数由this指针传入  。如果需要两个参数,那么可以在类外面定义,然后在类里声明为友元。
  • 相关阅读:
    JavaScript将数字转换为大写金额
    css浮动
    JS合并数组的几种方法及优劣比较
    jquery.zclip.js粘贴功能
    iframe获取元素
    某些框架,类库
    web前端基础知识!
    前端开发流程
    学习其他前端技术
    SVN的学习以及使用!
  • 原文地址:https://www.cnblogs.com/wycnb/p/4667472.html
Copyright © 2011-2022 走看看