你可以吗?例如,您可以使用 std::cout << "Message";
在屏幕上打印一行但如果你添加 using namespace std;
在代码的顶部,您可以在没有 std::
的情况下使用它并将其用作 cout << "Message";
你能用自己的代码做到这一点吗?
编辑:让我解释得更好。
假设我有 A 类:
//Class A
#include <iostream>
#include "A.h"
using namespace std;
class A {
public: void testFunction() {
cout << "My message";
}
};
然后,如果我正确设置了 header ,我将能够:
//Class B
#include <iostream>
#include "A.h"
using namespace std;
class B {
int main() {
A aObject; //Create the object
aObject.testFunction(); //This is how I'd have to reference it
return 0;
}
};
所以我想知道的是,即使它在一个单独的类中,是否如何仅使用 testFunction()
来引用该函数?而不是 aObject.testFunction()
最佳答案
类的非静态成员函数只能在该类的对象上调用。这就是他们的目的。你不必有一个命名对象,但你仍然必须有一个对象:
A().testFunction();
如果您将函数设置为static
,那么您可以这样调用它:
A::testFunction();
谈论以任何其他方式调用该函数没有任何意义。这就是成员函数的工作方式。听起来您真的想要一个非成员函数,也许在命名空间中。
关于c++ - 您可以使用不带::的命名空间从其他类引用函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27720898/