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

And*_*rew 1 c++ class member-functions

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

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

class classA {
  public:
  int function1(int alpha);
}
Run Code Online (Sandbox Code Playgroud)

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

 classA::function1(15);
Run Code Online (Sandbox Code Playgroud)

并且我的编译器拒绝它,因为它无法找到'classA :: function1(int)'的匹配项.
如果重要的话,我会使用Embarcadero RAD studio 2010.

sje*_*397 9

要调用"普通"函数,您需要一个实例.

classA a;
a.function1(15);
Run Code Online (Sandbox Code Playgroud)

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

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

//...
classA::function1(15);
Run Code Online (Sandbox Code Playgroud)

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

  • @Naveen:是的,但这对于一个命名空间来说是一个*真正的*坏名称:) (2认同)