2016-10-30 4 views
-1

는 내가이 일을 올바르게 모든 일을했다 생각했지만, 나는 이러한 오류 얻을 :getline을 사용하여 C++에서 클래스에 값을 입력하는 방법은 무엇입니까?

.. \ CS115_IP2_SolJohnston.cpp : 107 : 2 : 오류 : '1 고객이'이 범위 Customer1.setCustName에서 선언되지 않았습니다를 ("");^

.. \ CS115_IP2_SolJohnston.cpp : 152 : 29 : 오류 : 인수에 대해 '고객 *'에 '표준 : __ cxx11 : 문자열 {일명 표준 : __ cxx11 :: basic_string을}'변환 할 수 없습니다 '1' 'void viewAddress (Customer *)' viewAddress (name, address); ^

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; 
} 
+1

'viewAddress'의'}'뒤에 오는 모든 것은 * function * ('main()'과 같습니다)에 속합니다. – WhozCraig

+0

방금 ​​추가 했으므로 질문이 업데이트됩니다. 여전히 오류가 있지만 그것을 추가하는 데 도움이되지 않습니다 :) – Sol

+1

그것을 사용하려고하기 전에 Customer1을 '고객'유형으로 선언해야한다고 생각합니다. – JGroven

답변

2

당신이 주요 customer1에 선언되지 않은 객체를 사용하려고합니다. 고객 유형의 객체를 선언 한 다음 사용하십시오.

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

} 
+1

또한 사용하기 전에'char selection; '을 선언하십시오. 두 문자열이 아닌'ViewAddress()'에'Customer1'의 주소를 넘겨 줘야합니다 :'ViewAddress (& Customer1);' – Raindrop7

+0

이것은 내 이해에 정말로 도움이되었습니다. :) – Sol

+1

@Sol ok 그 소리가 좋아. – Raindrop7

관련 문제