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

标签 c++ class member-functions

我在单独的文件中定义了一个类,有时我需要从另一个源文件访问其中一个公共(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/

相关文章:

c++ - 如何将二进制数据硬编码为字符串

Java: isBinary 方法的类是什么?

c++ - mem_fun 失败,pthread 和类 ptr

c++ - C++ 对象如何保存有关其成员函数的信息

c++ - 指向成员函数的指针的实际用途是什么?

c++ - 编译 MatIO 时出现链接错误

c++ - 从字符串中删除多余空格的程序

c++ - 如何反转矩阵

Java - 使用(抽象)ListModel 显示 HashMap 的内容

javascript - 类似类的行为 Javascript