加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

调用没有类实例的c类方法?

发布时间:2020-12-16 05:39:32 所属栏目:百科 来源:网络整理
导读:是否可以在不先创建类实例的情况下调用c类方法? 假设我们有以下代码: // just an example #include iostreamusing namespace std;class MyClass { public: MyClass(); ~MyClass(); int MyMethod(int *a,int *b);};// just a dummy methodint MyClass::MyMe
是否可以在不先创建类实例的情况下调用c类方法?

假设我们有以下代码:

// just an example 
#include <iostream>
using namespace std;

class MyClass {
    public:
        MyClass();
        ~MyClass();
        int MyMethod(int *a,int *b);
};

// just a dummy method
int MyClass::MyMethod(int *a,int *b){;
    return a[0] - b[0];
}

这是另一个例子:

#include <iostream>
using namespace std;

class MyClassAnother {
    public:
        MyClassAnother();
        ~MyClassAnother();
        int MyMethod(int *a,int *b);
};

// just a dummy method
int MyClassAnother::MyMethod(int *a,int *b){;
    return a[0] + b[0];
}

我们可以看到,在上面的例子中,两个类都没有内部变量,并使用虚构造函数/析构函数;它们的唯一目的是公开一种公共方法MyMethod(..).这是我的问题:假设文件中有100个这样的类(全部具有不同的类名,但具有相同的结构 – 一个具有相同原型的公共方法 – MyMethod(..).

有没有办法调用每一个类的MyMethod(..)方法调用,而没有为每个类创建一个类实例?

解决方法

使用关键字“static”声明方法:
static int MyMethod( int * a,int * b );

那么你可以调用该方法,而不需要像这样的实例:

int one = 1;
int two = 2;

MyClass::MyMethod( &two,&one );

‘static’方法是仅使用该类作为命名空间的函数,不需要实例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读