提问人:Mykola Tetiuk 提问时间:2/22/2021 更新时间:2/22/2021 访问量:1286
如何在 C++ 中访问命名空间中的类成员函数
How to access class member function in a namespace in C++
问:
我有一个命名空间。该类位于命名空间中。
namespace SALES
{
class Sales
{
...
我已经创建了函数。
void SALES::Sales::set()
{
...
现在我正在创建一个对象SALES::Sales interactive ();
但我无法找到方法。 请指出我的错误。
interactive.set();
不起作用
SALES::interactive.set();
不起作用
interactive.SALES::set();
不起作用
答:
1赞
D-RAJ
2/22/2021
#1
访问函数的非静态成员的方法是使用对象运算符的成员。例如
class SomeObject {
public:
SomeObject() {}
void SayHello() { ... }
int age = 10;
};
// When calling members.
SomeObject object;
object.SayHello();
int age = object.age;
在实例化时,改用 或。如果不是,当您尝试这样做时: ,C++ 将尝试将其解析为函数。现在就你而言,第一个; 需要工作。SALES::Sales interactive;
SALES::Sales interactive{};
SALES::Sales interactive ();
interactive.set();
如果它仍然不起作用,它可能与成员的可访问性有关。默认情况下,类将其成员设为私有;只有友元类和它本身才能访问这些对象。因此,请确保成员是公开的。
评论
SALES::Sales interactive ();
被解析为函数声明。尝试或干脆 它被称为最令人烦恼的解析。SALES::Sales interactive {};
SALES::Sales interactive;
SALES::Sales interactive;