zoukankan      html  css  js  c++  java
  • C++ class内的==重载,判断相等,测试等于,重载示例。二元操作符

    #include <iostream>
    
    // overloading "operator == " inside class
    // == 是二元操作符
    
    
    //////////////////////////////////////////////////////////
    
    class Rectangle
    {
    public:
    	Rectangle(int w, int h) 
    		: width(w), height(h)
    	{};
    
    	~Rectangle() {};
    
    	bool operator == (Rectangle& rec) const;
    
    
    private:
    	int width;
    	int height;
    };
    
    //////////////////////////////////////////////////////////
    
    bool Rectangle::operator==(Rectangle & rec) const//相同的class对象互为友元,所以可以访问private对象。== 是二元操作符,class内隐藏了this
    {
    	return this->height == rec.height
    		&& this->width == rec.width;
    }
    
    // 等价于:
    /*
    bool Rectangle::operator==(Rectangle* this, Rectangle & rec) const
    {
    	return this->height == rec.height
    		&& this->width == rec.width;
    }
    */
    
    //////////////////////////////////////////////////////////
    
    int main()
    {
    	Rectangle a(40, 10);
    	Rectangle b(40, 10);
    	Rectangle c(4, 10);
    
    	std::cout << (a == b) << std::endl;
    	std::cout << (a == c) << std::endl;
    	std::cout << (b == c) << std::endl;
    
    	return 0;
    }
    

      

  • 相关阅读:
    Daily Scrum 12.16
    Daily Scrum 12.15
    Daily Scrum 12.14
    Daily Scrum 12.12
    Daily Scrum 12.11
    Pipeline组Beta版本发布说明
    Pipeline组项目Postmortem
    Pipeline组Alpha版本发布说明
    Pipeline组测试说明
    Daily Scrum 11.6
  • 原文地址:https://www.cnblogs.com/alexYuin/p/11965136.html
Copyright © 2011-2022 走看看