C++ 在静态创建方法中从基类调用非静态方法

C++ 在静态创建方法中从基类调用非静态方法,c++,C++,我想编写一个静态create方法,在这里我从基类调用一个非静态方法 那么,我必须在createMyClass方法之外调用我的基类方法,还是有任何可能的方法在内部调用它?非静态方法需要在实例上调用,并且编译器不会假装足够聪明,知道要在哪个实例上调用它,除非您在实例方法中。您需要显式调用刚刚创建的MyClass实例上的方法: myclass->method(); 另一种思考方式:在非静态上下文中,使用syntax方法调用方法;相当于此->方法;。由于处于静态上下文中,您没有this,因此您需

我想编写一个静态create方法,在这里我从基类调用一个非静态方法


那么,我必须在createMyClass方法之外调用我的基类方法,还是有任何可能的方法在内部调用它?

非静态方法需要在实例上调用,并且编译器不会假装足够聪明,知道要在哪个实例上调用它,除非您在实例方法中。您需要显式调用刚刚创建的MyClass实例上的方法:

myclass->method();

另一种思考方式:在非静态上下文中,使用syntax方法调用方法;相当于此->方法;。由于处于静态上下文中,您没有this,因此您需要自己提供this。

非静态方法需要在实例上调用,并且编译器不会假装足够聪明,知道要在哪个实例上调用它,除非您在实例方法中。您需要显式调用刚刚创建的MyClass实例上的方法:

myclass->method();

另一种思考方式:在非静态上下文中,使用syntax方法调用方法;相当于此->方法;。由于处于静态上下文中,您没有this,因此您需要自己提供this。

啊,非常感谢。不知道,我没有这个指针。啊,非常感谢。我不知道,我没有这个指针。
...
MyClass* MyClass::createMyClass()
{
    MyClass* myclass = new MyClass();
    method(); // Error, illegal call of non-static member function
    return myclass;
}
...
myclass->method();