如何使用GETLIN向C++中的类输入值?

如何使用GETLIN向C++中的类输入值?,c++,C++,我认为我已经做了一切正确的工作,但我得到以下错误: ..\CS115_IP2_SolJohnston.cpp:107:2:错误:“Customer1”未在此范围内声明 Customer1.setCustName; ^ void displayMenu(string userName) { cout << userName << ", please select an action from the menu below" << endl;

我认为我已经做了一切正确的工作,但我得到以下错误:

..\CS115_IP2_SolJohnston.cpp:107:2:错误:“Customer1”未在此范围内声明 Customer1.setCustName; ^

 void displayMenu(string userName)
{

    cout << userName << ", please select an action from the menu below" << endl;

    cout<<"My Menu";
    cout<<"========" << endl;
    cout<<"0 - View Your Order Name and Address" << endl;

    cout<<"X - Exit " <<endl<<endl;
}
class Customer
{
    private:
    string CustName;
    string CustAddress;

    public:
    void setCustName(string);
    string getCustName();

    void setCustAddress(string);
    string getCustAddress();

    // Constructor
    // create empty placeholders
    Customer();
};

//definition of set/get member functions of Employee class
void Customer::setCustName(string name){CustName=name;}

void Customer::setCustAddress(string address){CustAddress=address;}

string Customer::getCustName() { return CustName; }

string Customer::getCustAddress() { return CustAddress; }


Customer::Customer()
{
    CustName = "";
    CustAddress = "";

}

void viewAddress(Customer *Cust)
{
    cout << "Name: " << Cust->getCustName() << endl;
    cout << "Address: " << Cust->getCustAddress() << endl;
}

int main(void)
{
Customer1.setCustName("");
Customer1.setCustAddress("");

string name = "";
string address = "";

cout << "Please enter your Address:  street, city, state==> ";
getline(cin, address);
Customer1.setCustAddress(address);



cout << "Hello "+ name + " from " + address << endl;

do
    {
    // display menu
    displayMenu(name);
    // read user selection
    cin>>selection;
    switch(selection)
        {
        case '0':
            cout<< "Your Address is" << endl;
            viewAddress(name, address);
            break;
            case 'X' :
        case 'x':
            cout<<"Thank you!!!" << endl;
            break;
        default : cout<<"Invalid selection. Please try again";
        // no break in the default case
        }
        cout<<endl<<endl;
    } while (selection!= 'X' && selection != 'x');

    return 0;
}
..\CS115_IP2_SolJohnston.cpp:152:29:错误:无法将参数“1”的“std::ucx11::string{aka std::uucx11::basic_string}”转换为“Customer*”,将参数“1”转换为“void viewAddressCustomer*” viewAddressname,地址; ^

 void displayMenu(string userName)
{

    cout << userName << ", please select an action from the menu below" << endl;

    cout<<"My Menu";
    cout<<"========" << endl;
    cout<<"0 - View Your Order Name and Address" << endl;

    cout<<"X - Exit " <<endl<<endl;
}
class Customer
{
    private:
    string CustName;
    string CustAddress;

    public:
    void setCustName(string);
    string getCustName();

    void setCustAddress(string);
    string getCustAddress();

    // Constructor
    // create empty placeholders
    Customer();
};

//definition of set/get member functions of Employee class
void Customer::setCustName(string name){CustName=name;}

void Customer::setCustAddress(string address){CustAddress=address;}

string Customer::getCustName() { return CustName; }

string Customer::getCustAddress() { return CustAddress; }


Customer::Customer()
{
    CustName = "";
    CustAddress = "";

}

void viewAddress(Customer *Cust)
{
    cout << "Name: " << Cust->getCustName() << endl;
    cout << "Address: " << Cust->getCustAddress() << endl;
}

int main(void)
{
Customer1.setCustName("");
Customer1.setCustAddress("");

string name = "";
string address = "";

cout << "Please enter your Address:  street, city, state==> ";
getline(cin, address);
Customer1.setCustAddress(address);



cout << "Hello "+ name + " from " + address << endl;

do
    {
    // display menu
    displayMenu(name);
    // read user selection
    cin>>selection;
    switch(selection)
        {
        case '0':
            cout<< "Your Address is" << endl;
            viewAddress(name, address);
            break;
            case 'X' :
        case 'x':
            cout<<"Thank you!!!" << endl;
            break;
        default : cout<<"Invalid selection. Please try again";
        // no break in the default case
        }
        cout<<endl<<endl;
    } while (selection!= 'X' && selection != 'x');

    return 0;
}

您试图在主customer1中使用未声明的对象。因此,声明一个Customer类型的对象,然后使用它

int main()
{
     Customer customer1; // instantiate Customer class
    Customer1.setCustName("");
    Customer1.setCustAddress("");

}

viewAddress的closing}之后的所有内容都属于main这样的函数。我刚刚添加了它,并将更新问题。它仍然存在错误,但它确实帮助它添加了错误,不是吗:我认为在尝试使用它之前,需要将Customer1声明为“Customer”类型。我只是将该Customer1设置为;,真不敢相信我竟然忘了!最初,我在处理以下行时遇到了问题:getlinecin,address;Customer1.setCustAddressaddress;还声明字符选择;在使用它之前。还要将Customer1的地址传递给ViewAddress而不是两个字符串:ViewAddress&Customer1;这真的帮助了我的理解