调用函数时出错

时间:2011-02-25 10:26:48

标签: c++ linux

当我将一个类的静态函数调用到任何其他函数(通过非类函数表示)时,我收到一个错误,然后它给出了以下错误:

undefined reference to function name_function.

任何人都可以告诉我为什么会这样吗?

2 个答案:

答案 0 :(得分:2)

Basic C ++:非静态成员函数假定它可以访问类类型的对象(它可以直接引用成员变量,“this”指针指向对象)。

这意味着除非您拥有该类型的对象,否则无法调用非静态成员函数。在静态成员函数中,您没有。

(我不是100%确定这是你问题的答案,因为如果你试图从静态函数中调用非静态函数,或者反之亦然,那么你的解释并不干净。)

答案 1 :(得分:1)

您是否在函数名称之前添加了类名?

所以,如果你有:

class MyClass
{
    ...
    public static function name_function() { ... }
    ...
}

你需要像这样调用这个函数:

MyClass::name_function();