1

我在一个单独的文件中定义了一个类,有时我需要从另一个源文件访问其中一个公共成员函数。出于某种原因,我忘记了如何做到这一点,编译器给了我一个错误。

我有 classA.h ,其 A 类的定义与此类似:

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

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

 classA::function1(15);

我的编译器拒绝它,错误是找不到“classA::function1(int)”的匹配项。
如果这很重要,我会使用 Embarcadero RAD studio 2010。

4

2 回答 2

9

要调用“正常”函数,您需要一个实例。

classA a;
a.function1(15);

如果你想调用函数,classA::那么它需要是static.

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

//...
classA::function1(15);

请注意,在静态方法中,您不能访问任何非静态成员变量,原因相同 - 没有提供上下文的实例。

于 2010-11-30T11:18:49.787 回答
1

function1 是静态方法吗?如果不是,那么您需要该类的对象来调用成员函数。

在您的 blah.cpp 中包含 classA.h 并创建 A 类的对象,然后调用成员函数。

于 2010-11-30T11:20:41.930 回答