当我将一个类的静态函数调用到任何其他函数(通过非类函数表示)时,我收到一个错误,然后它给出了以下错误:
undefined reference to function name_function.
任何人都可以告诉我为什么会这样吗?
答案 0 :(得分:2)
Basic C ++:非静态成员函数假定它可以访问类类型的对象(它可以直接引用成员变量,“this”指针指向对象)。
这意味着除非您拥有该类型的对象,否则无法调用非静态成员函数。在静态成员函数中,您没有。
(我不是100%确定这是你问题的答案,因为如果你试图从静态函数中调用非静态函数,或者反之亦然,那么你的解释并不干净。)
答案 1 :(得分:1)
您是否在函数名称之前添加了类名?
所以,如果你有:
class MyClass
{
...
public static function name_function() { ... }
...
}
你需要像这样调用这个函数:
MyClass::name_function();