如何在 C++ 中访问命名空间中的 class 成员函数
How to access class member function in a namespace in C++
我有一个命名空间。 class 在命名空间中。
namespace SALES
{
class Sales
{
...
我创建了函数。
void SALES::Sales::set()
{
...
现在我正在创建一个对象
SALES::Sales interactive ();
但我无法找到方法。
请指出我的错误。
interactive.set();
// 无效
SALES::interactive.set();
// 无效
interactive.SALES::set();
// 无效
访问函数的非静态成员的方法是使用 member of object 运算符。例如,
class SomeObject {
public:
SomeObject() {}
void SayHello() { ... }
int age = 10;
};
// When calling members.
SomeObject object;
object.SayHello();
int age = object.age;
并且在实例化时,使用 SALES::Sales interactive;
或 SALES::Sales interactive{};
代替。如果不是,当您尝试这样做时:SALES::Sales interactive ();
,C++ 将尝试将其解析为函数。现在就您而言,第一个; interactive.set();
需要工作。
如果还是不行,可能是会员的可访问性问题。 类 默认将其成员设为私有;只有朋友 类 和它自己可以访问这些对象。所以确保成员是 public.
我有一个命名空间。 class 在命名空间中。
namespace SALES
{
class Sales
{
...
我创建了函数。
void SALES::Sales::set()
{
...
现在我正在创建一个对象
SALES::Sales interactive ();
但我无法找到方法。 请指出我的错误。
interactive.set();
// 无效
SALES::interactive.set();
// 无效
interactive.SALES::set();
// 无效
访问函数的非静态成员的方法是使用 member of object 运算符。例如,
class SomeObject {
public:
SomeObject() {}
void SayHello() { ... }
int age = 10;
};
// When calling members.
SomeObject object;
object.SayHello();
int age = object.age;
并且在实例化时,使用 SALES::Sales interactive;
或 SALES::Sales interactive{};
代替。如果不是,当您尝试这样做时:SALES::Sales interactive ();
,C++ 将尝试将其解析为函数。现在就您而言,第一个; interactive.set();
需要工作。
如果还是不行,可能是会员的可访问性问题。 类 默认将其成员设为私有;只有朋友 类 和它自己可以访问这些对象。所以确保成员是 public.