调用没有类实例的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’方法是仅使用该类作为命名空间的函数,不需要实例. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |