C ++:从类外部访问公共成员函数

时间:2010-11-30 11:15:31

标签: c++ class member-functions

我在一个单独的文件中定义了一个类,在某些时候我需要从另一个源文件访问一个公共成员函数。出于某种原因,我忘了怎么做,编译器给了我一个错误。

我有classA.h,类A的定义类似于:

class classA {
  public:
  int function1(int alpha);
}

和一个单独的文件classA.cpp一起实现。然后在一些其他文件blah.cpp中我包含标题并尝试像这样访问它:

 classA::function1(15);

并且我的编译器拒绝它并且错误地找不到'classA :: function1(int)'的匹配。
如果重要的话,我会使用Embarcadero RAD studio 2010。

2 个答案:

答案 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类对象,然后调用成员函数。