如何使用GETLIN向C++中的类输入值?
我认为我已经做了一切正确的工作,但我得到以下错误: ..\CS115_IP2_SolJohnston.cpp:107:2:错误:“Customer1”未在此范围内声明 Customer1.setCustName; ^如何使用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;
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;这真的帮助了我的理解