节目课#39;使用除main()之外的其他函数但在main()中调用的对象;

时间:2017-01-03 19:08:33

标签: c++ oop

您好我在大学的项目中工作,该项目必须包含课程。 我无法在这里粘贴它们,因为读取数百行需要花费很多时间,但我有一个完美的USER类,但我还有一个MainMenu()函数,它在main()之前编写,这是只有一个我在main()中调用,用switch制作,它应该将控制台重定向到类'子菜单或显示每个类的对象,它取决于类。

好的,当我选择转到用户列表选项时,从这个MainMenu,我希望控制台向我显示用户列表,这意味着我在main()中创建的所有用户类对象。我想过参考课程创建一个新的功能,但是当我没有在main中调用它时,我不知道如何在这种情况下使用它,但是我需要知道它中的所有对象上课更不用说特定的对象..

我怎么能这样做因为我只在main()中调用MainMenu(),而不是在这里写它以便能够直接使用这些对象?

善待我,我是初学者,我从未处理过这种必需品。如果你能帮助我解决这个问题,我将不胜感激。

度过愉快的一天。

#include<iostream>
using namespace std;

class user{};
class B{};
class C{};

void MainMenu()
{
    cout << "         Main Menu" << endl;
    cout << endl;
    int chosenoption;
    cout << "1.Users List" << endl;
    cout << "2.Class B Submenu" << endl;
    cout << "3.Class C submenu" << endl;
    cout << "Type here the number of the option you want to choose: ";
    cin >> chosenoption;
    system("pause");
    switch (chosenoption)
    {
    case 1:
        system("cls");
        cout << "There should be shown the list of users, here the only users i created in main are u1 and u2, and i need to make them and their attributes appear in this screen" << endl;
        break;
    case 2:
        system("cls");
        ClassBSubmenu(); 
        break;
    case 3:
        system("cls");
        ClassCSubMenu();
        break;
    default:
        cout << endl;
        cout << "Choose one of the available options only!" << endl;
        cout << "Type here: " << endl;

    }
}

void main()
{
User u1(...);
User u2(..);
}

ClassBSubmenu和ClassCSubmenu是在MainMenu之前创建的函数,但我还没有编辑太多

1 个答案:

答案 0 :(得分:1)

您可能希望将array个用户传递给MainMenu()函数。

User u[] = { User(...), User(..) };

当您pass an array时,实际上是在向数组中的第一个元素传递指针,因此可以在MainMenu()中修改用户,并且更改将存在于main()中。

void MainMenu( User users[] )
{
  ...
  users[0]


MainMenu( u );