c++ - 获取编译错误: “identifier ' objUser' is undefined” in my main() function

标签 c++ vector compiler-errors

我试图从主类中的clsFamily类调用函数,但是,当我传递(&objUser)时,我收到一条消息,指出:

identifier 'objUser' is undefined



编辑:抱歉忘了提及,但我要根据用户的选择来操纵动态 vector 数组。

任何帮助将不胜感激,因为这是下周四xD的任务
int UserChoice();

int UserChoice()
{
 int iChoice = 0;
 int iAdults = 0;
 int iChildren = 0;

 cout << "How many family members do you have? \n";
 cin >> iChoice;

 cout << "How many of these are adults? \n";
 cin >> iAdults;

 cout << "How many of these are children? \n";
 cin >> iChildren;

 return iChoice;
 return iAdults;
 return iChildren;
}

class clsUser
 {
  private:
    string m_sName;
    int m_iAge;
  public:
    void SetName(string);
    string GetName();
    void SetAge(int);
    int GetAge();
    clsUser();
    ~clsUser();
    clsUser(string, int);
  };

//This is to group the singular users into a group using a vector
class clsFamily
{
 private:
  vector <clsUser> objUser;
  public:
  void InputFamilyDetails(vector <clsUser> *objUser);
  void OutputFamilyDetails(vector <clsUser> *objUser);
};

void clsFamily::InputFamilyDetails(vector <clsUser>* objUser)
{
 string sName = "";
 int iAge = 0;

 for (int iCount = 0; iCount < objUser->size(); iCount++)
 {
     cout << "Please enter the name of family member " << iCount + 1 << "\n";
     cin >> sName;

     cout << "Please enter the age of family member " << iCount + 1 << "\n";
     cin >> iAge;

     objUser->at(iCount).SetName(sName);
     objUser->at(iCount).SetAge(iAge);
 }
}
//This is to allow the user to input the the details of the users from the vector

void clsFamily::OutputFamilyDetails(vector <clsUser>* objUser)
{
 for (int iCount = 0; iCount < objUser->size(); iCount++)
 {
     cout << "The name of family member " << iCount + 1 << " is " << objUser->at(iCount).GetName() << " \n";
     cout << "The age of family member " << iCount + 1 << " is " << objUser->at(iCount).GetAge()<< " \n";
 }
}

int main()
{
 clsFamily objFamily;
 *//This is the area where the problem is occuring*
 objFamily.InputFamilyDetails(&objUser);
 objFamily.OutputFamilyDetails(&objUser);
}

最佳答案

clsFamily已经有一个objUser成员。您不应该使用它,并且不要在InputFamiliyDetailsOutputFamilyDetails中使用参数:

class clsFamily
{
 private:
  vector <clsUser> objUser; // Needs to be initialized with some size, though
  public:
  void InputFamilyDetails();
  void OutputFamilyDetails();
};

void clsFamily::InputFamilyDetails()
{
 string sName = "";
 int iAge = 0;

 for (int iCount = 0; iCount < objUser.size(); iCount++)
 {
     cout << "Please enter the name of family member " << iCount + 1 << "\n";
     cin >> sName;

     cout << "Please enter the age of family member " << iCount + 1 << "\n";
     cin >> iAge;

     objUser.at(iCount).SetName(sName);
     objUser.at(iCount).SetAge(iAge);
 }
}

void clsFamily::OutputFamilyDetails()
{
 for (int iCount = 0; iCount < objUser.size(); iCount++)
 {
     cout << "The name of family member " << iCount + 1 << " is " << objUser.at(iCount).GetName() << " \n";
     cout << "The age of family member " << iCount + 1 << " is " << objUser.at(iCount).GetAge()<< " \n";
 }
}

int main()
{
 clsFamily objFamily;
 objFamily.InputFamilyDetails();
 objFamily.OutputFamilyDetails();
}

关于c++ - 获取编译错误: “identifier ' objUser' is undefined” in my main() function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60885934/

相关文章:

c++ - 错误的循环/阅读 C++

c++ - 如何使用 boost::multiprecision 在运行时更改数字精度

c++ - 模板类的方法使用全局范围内的 typedef。编译器错误?

c++ - 将 vector 中的 wchar 字符串与其他指定的 wchar 字符串进行比较

java - 尝试添加在IF语句中实现的列表时出错

c++ - qt 信号导致连接段错误

python - 将函数应用于元组数组

r - 如何将特定长度和数量的随机连续间隙插入向量中?

c++ - 继续出现段错误?

debugging - 阻止MSVC通过源代码编译指示创建调试符号?