zoukankan      html  css  js  c++  java
  • 'static' can indeed be used in C++ to create a Static Member Function

    'static' can indeed be used in C++ to do what you want - to create a Static Member Function.
    The compiler message is actually telling you that the 'static' keyword is not valid on the definition of the method, it should only be used in the class definition.
    So the following compiles
    class Rect
    {
    private:
        
    int x;
        
    int y;
        
    int width;
        
    int height;
    public:
        
    static bool intersects(Rect& a, Rect& b);  //Use 'static' in declaration
    };

    bool Rect::intersects(Rect& a, Rect& b)    //no 'static' - compiler know that from class declaration
    {
        
    return !(a.x > b.x+(b.width-1|| a.x+(a.width-1< b.x || a.y > b.y+(b.height-1|| a.y+(a.height-1< b.y);
    }

    int main()
    {
        Rect myRect1,myRect2;
        
    bool theSame;
        theSame 
    = Rect::intersects(myRect1,myRect2);
        
    return 0;
    };

    I have changed the result type to bool, as that appears to be your intent.
    I'll leave it to one of the experts to explain why static should only appear in the declaration - I sometimes feel the real reason for things like that are to make life harder for people new to the language:-)
  • 相关阅读:
    动态添加placeholder
    texworks编码问题
    c++ 小知识(不定期更新)
    写一个简单的 Makefile
    ubuntu 忘了密码
    遍历各种组合
    分形
    C++ 尾递归优化
    基于 QQBot 实现简易 QQ 机器人
    遇到问题:在函数中开辟动态内存(已解决)
  • 原文地址:https://www.cnblogs.com/smartvessel/p/2037729.html
Copyright © 2011-2022 走看看