静态方法

原创 2018年04月15日 14:11:42

最近做题遇到了问题:

class Solution {
public:
     bool Compare(string strNum1, string strNum2)
    {
        string strSum1;
        string strSum2;
        strSum1 = strNum1 + strNum2;
        strSum2 = strNum2 + strNum1;

        return strSum1 < strSum2 ? 1 : 0;

    }
    string PrintMinNumber(vector<int> numbers)
    {
        vector<string> vStr;
        for(vector<int>::iterator it = numbers.begin(); it != numbers.end(); ++it)
        vStr.push_back(to_string(*it));
        sort(vStr.begin(), vStr.end(), Compare);

        string str;
        for(vector<string>::iterator it = vStr.begin(); it != vStr.end(); ++it)
            str += *it;
        return str;
    }
};

这个代码编译通不过,原因很简单,sort函数的第三个参数需要一个比较函数,这个比较函数必须只有俩个参数,可是类里的方法默认第一个参数是this指针,所以Compare函数实际上有三个参数;只要在把函数定义成静态方法就可以了static bool Compare(string strNum1, string strNum2),在方法的返回值前加static关键字即可,静态方法没有this指针做参数,可是需要注意静态方法只能访问类的静态成员,不能访问非静态成员,所以如果这个Compare调用了该类其他非静态方法的话就不行了。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzc2608/article/details/79948945

PHP中静态方法(static)与非静态方法的使用及区别.docx

  • 2011年05月24日 14:12
  • 19KB
  • 下载

C#静态方法与非静态方法的比较

  • 2012年03月09日 17:38
  • 2KB
  • 下载

定义连接类的静态方法

  • 2009年09月23日 19:14
  • 456B
  • 下载

JS中的实例方法与静态方法

一、静态方法与实例方法的例子: 我们先来看一个例子来看一下JS中的静态方法和实例方法到底是什么 静态方法: function A(){} A.sayMeS=function(){ console.lo...
  • tanzhengyu
  • tanzhengyu
  • 2016-04-06 22:27:58
  • 5132

Python静态方法和类方法深度总结

Python静态方法和类方法深度总结
  • u014745194
  • u014745194
  • 2017-06-17 22:46:40
  • 1417

静态方法和非静态方法的区别是什么

静态方法和非静态方法的区别总结如下:1、静态方法属于类所有,类实例化前即可使用; 2、非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员; 3、因为静态方法在类实例化前就可以使用,而类中...
  • lovelyangel2008
  • lovelyangel2008
  • 2017-04-16 14:57:50
  • 1616

Java实例说明 静态方法和非静态方法的区别

静态方法只能访问静态成员
  • HZ_LIZX
  • HZ_LIZX
  • 2017-02-10 16:09:17
  • 938

可以重写静态方法吗

http://www.importnew.com/7784.html 问:你可以重写静态方法吗? 答:如果从重写方法会有什么特点来看,我们是不能重写静态方法的。虽然就算你重写静态方...
  • sunmenggmail
  • sunmenggmail
  • 2014-01-11 12:05:54
  • 2826

Python普通方法、静态方法、类方法

Python普通方法、静态方法、类方法今天尝试了一下Python普通方法、静态方法、类方法的区别# -*-coding:utf-8-*- # 普通方法,类方法,静态方法的区别__metaclass__...
  • chendong_
  • chendong_
  • 2016-08-11 10:31:57
  • 12481
收藏助手
不良信息举报
您举报文章:静态方法
举报原因:
原因补充:

(最多只允许输入30个字)