我在单独的文件中定义了一个类,有时我需要从另一个源文件访问其中一个公共(public)成员函数。出于某种原因,我忘记了该怎么做,编译器给我一个错误。
我有 classA.h 类 A 的定义与此类似:
class classA {
public:
int function1(int alpha);
}
还有一个带有实现的单独文件 classA.cpp。然后在其他一些文件 blah.cpp 中包含 header 并尝试像这样访问它:
classA::function1(15);
我的编译器拒绝了它,错误是找不到“classA::function1(int)”的匹配项。
如果重要的话,我会使用 Embarcadero RAD studio 2010。
最佳答案
要调用“普通”函数,您需要一个实例。
classA a;
a.function1(15);
如果您想使用 classA::
调用该函数,则它需要是 static
。
classA {
public:
static int function1(int alpha);
};
//...
classA::function1(15);
请注意,在静态方法中,您不能访问任何非静态成员变量,原因相同 - 没有实例可提供上下文。
关于C++:从类外部访问公共(public)成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4313113/