我在一个单独的文件中定义了一个类,在某些时候我需要从另一个源文件访问一个公共成员函数。出于某种原因,我忘了怎么做,编译器给了我一个错误。
我有classA.h,类A的定义类似于:
class classA {
public:
int function1(int alpha);
}
和一个单独的文件classA.cpp一起实现。然后在一些其他文件blah.cpp中我包含标题并尝试像这样访问它:
classA::function1(15);
并且我的编译器拒绝它并且错误地找不到'classA :: function1(int)'的匹配。
如果重要的话,我会使用Embarcadero RAD studio 2010。
答案 0 :(得分:9)
拨打正常电话'功能,你需要一个实例。
classA a;
a.function1(15);
如果您想使用classA::
来调用该功能,则需要static
。
classA {
public:
static int function1(int alpha);
};
//...
classA::function1(15);
请注意,在静态方法中,您无法访问任何非静态成员变量,原因相同 - 没有实例提供上下文。
答案 1 :(得分:1)
function1是静态方法吗?如果不是,那么您需要该类的对象来调用成员函数。
在你的blah.cpp中包含classA.h并创建一个A类对象,然后调用成员函数。