c++ - 从抽象类中的静态方法调用非静态方法(C++)

标签 c++ abstract

有人偶然知道从 C++ 抽象类中的静态方法调用非静态方法的解决方法?

例如,我有以下抽象类:

class aClass
{
  public: 
   static int check();
   virtual int check_deep()=0;
}

我想调用 check_deep() 形成 check()

提前致谢, 朱迪思。

最佳答案

为此,您需要更改静态方法的签名以接收对 aClass 实例的引用(或指针):

class aClass
{
  public: 
   static int check(aClass& instance);
   virtual int check_deep()=0;
}

int aClass::check(aClass& instance)
{
     return aClass.check_deep();
}

设计 smells 不知何故!

关于c++ - 从抽象类中的静态方法调用非静态方法(C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21368648/

相关文章:

c++ - OpenGL矩形莫名其妙地占据了整个窗口

c++ - 在opengl中删除纹理

c++ - C/C++ 编译器通常会删除重复的库吗?

c++ - C++ Newton Raphson方法比对分慢吗?

c++ - 如何理解和修复这段代码中的段错误?

java - 函数可以在类的字段中使用吗(java)

java - 类要求继承抽象的未实现方法

python - 为什么Python允许抽象方法有代码?

java - 创建类似 ArrayList 的类时出现 NullPointerException

java - 如何在抽象方法中给出不同的参数?