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

前端之家收集整理的这篇文章主要介绍了调用没有类实例的c类方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以在不先创建类实例的情况下调用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’方法是仅使用该类作为命名空间的函数,不需要实例.

原文链接:https://www.f2er.com/c/114079.html

猜你在找的C&C++相关文章