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指针传入  。如果需要两个参数,那么可以在类外面定义,然后在类里声明为友元。
  • 相关阅读:
    polya定理
    树状数组
    离散数学通路数的矩阵计算法
    高次同余方程求解
    Uva1378
    poj2888
    poj2409&&poj1286
    poj2182
    poj2154
    判断一个字符是否为汉字
  • 原文地址:https://www.cnblogs.com/wycnb/p/4667472.html
Copyright © 2011-2022 走看看