繁体   English   中英

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

[英]C++: Access to a public member function from outside of a class

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

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

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

并用一个单独的文件classA.cpp来实现。 然后在其他文件blah.cpp中,包含标头并尝试按以下方式访问它:

 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);

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM