首页 > 解决方案 > 如何在 C++ 中访问命名空间中的类成员函数

问题描述

我有一个命名空间。该类位于命名空间中。

namespace SALES
{
    class Sales
    {
    ...

我已经创建了函数。

void SALES::Sales::set()
{
   ...

现在我正在创建一个对象 SALES::Sales interactive ();

但我无法找到方法。请指出我的错误。

interactive.set();// 不起作用

SALES::interactive.set();// 不起作用

interactive.SALES::set();// 不起作用

标签: c++objectoopnamespaces

解决方案


访问函数的非静态成员的方法是使用对象运算符的成员。例如,

class SomeObject {
public:
    SomeObject() {}

    void SayHello() { ... }
    
    int age = 10;
};

// When calling members.
SomeObject object;
object.SayHello();
int age = object.age;

并且在实例化时,使用SALES::Sales interactive;orSALES::Sales interactive{};代替。如果不是当您尝试这样做时:SALES::Sales interactive ();,C++ 将尝试将其解析为函数。现在在你的情况下,第一个;interactive.set();需要工作。

如果它仍然不起作用,则可能与成员的可访问性有关。默认情况下,类将其成员设为私有;只有朋友类和它本身可以访问这些对象。因此,请确保成员是公开的。


推荐阅读