理解C ++中的类有困难

时间:2017-04-12 11:53:05

标签: c++ class

我有一个类和一个命名空间,我需要从另一个文件访问该类的数据。 例如:

namespace A {
   struct SMS{
       string id;
       Messages msg; //(an array of strings)
   };
}

class Users{
public:
//ALL THE FUNCTIONS HERE TO MANAGE THE USER
private:

struct User{
       string id_user;
       SMS sms;
       };
};

所以现在我想访问sms及其中的数组,但我无法找到方法。 它应该是这样的吗?

User ada_lovelace;
return ada_lovelace.sms.msg[1];

或:

return ada_lovelace.A::sms.msg[1];?

2 个答案:

答案 0 :(得分:0)

答案取决于您要定义和使用ada_lovelace的位置。如果您要在类Users的某个方法中声明它或者作为该类的成员,则应将User定义为:

struct User{
   string id_user;
   A::SMS sms;
   };

你应该可以使用

return ada_lovelace.sms.msg[1];

但是,如果您要使用ada_lovelaceUsers,则必须将User定义为公共,并创建如下对象:

Users::User ada_lovelace;

答案 1 :(得分:-2)

检查下面的实施

namespace A {
   struct SMS{
       string id;
       Messages msg; //(an array of strings)
   };
}

//Namespace A ends here so if you want to use SMS in the class u need to mention it as A::SMS sms

class Users{
public:
//ALL THE FUNCTIONS HERE TO MANAGE THE USER
private:

struct User{
       string id_user;
       A::SMS sms; // Corrected here ------------
       };
};