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:-)
  • 相关阅读:
    centos7系统初始化脚本
    git上传项目到github
    requests的使用
    zip函数
    mongodb基本操作
    mongodb的安装与配置启动(转)
    jupyter插件与主题
    map函数
    centos7 安装 ffmpeg
    centos7 下 yum 安装Nginx
  • 原文地址:https://www.cnblogs.com/smartvessel/p/2037729.html
Copyright © 2011-2022 走看看