首页 > 解决方案 > 在cpp的静态函数中访问这个指针

问题描述

我有一个 cpp 类和其中定义的几个方法。其中一个静态方法需要调用同一个类的非静态方法。我不能使用“this”指针来执行此操作,因为不能使用静态函数“this”指针。

我需要以某种方式访问​​cpp中静态方法中指向同一类的指针...有人可以帮忙吗

标签: c++staticthis

解决方案


让静态函数获取类的引用参数。例子:

struct Foo {
    void func() { }

    static void static_func(Foo& obj)
    {
        obj.func();
    }
};

用法:

Foo foo;
Foo::static_func(foo);

您可以改为使用Foo* obj参数。在这种情况下,您显然需要传递一个指针 ( Foo::static_func(&foo);)。

话虽如此,您的函数看起来不应该是静态的。使其成为非静态的。


推荐阅读