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:-)
  • 相关阅读:
    2 浮点数
    1 有符号与无符号
    4.变量和不同的赋值方式
    文档格式标准
    常用mysql命令
    一个简单的jsp+servlet实例,实现简单的登录
    容量调度器与公平调度器区别
    CListCtrl用法总结(二)
    CListCtrl 实现排序功能(数字和字母)
    CString 转换成 char *
  • 原文地址:https://www.cnblogs.com/smartvessel/p/2037729.html
Copyright © 2011-2022 走看看