2016-10-30 18 views
-1

私はこの仕事をするためにすべてを正しく行っていると思ったが、私はこれらのエラーを取得:getlineを使ってC++のクラスに値を入力するにはどうすればよいですか?

.. \ CS115_IP2_SolJohnston.cpp:2:107エラー:「Customer1」がこの範囲 Customer1.setCustNameで宣言されていませんでした( "");引数のための 'カスタマー*' に変換することはできません 'のstd :: __ cxx11 ::文字列{別名のstd :: __ cxx11 ::のbasic_string}' '1':^

.. \ CS115_IP2_SolJohnston.cpp:29:152エラー'無効なviewAddress(顧客*)' 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'の'} 'の後のすべては、*関数*(' main() 'のように)に属します。 – WhozCraig

+0

私はちょうどそれを追加し、質問を更新します。まだエラーがありますが、それはそれを追加するのに役立ちます:) – Sol

+1

私は、あなたがそれを使用しようとする前に '顧客'タイプとしてCustomer1を宣言する必要があると思います。 – JGroven

答えて

2

あなたがメインcustomer1で宣言されていないオブジェクトを使用しようとしています。 Customer型のオブジェクトを宣言してから使用します。

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

} 
+1

も ​​'char selection;'を宣言してから使用します。また、 'ViewAddress()'に2つの文字列ではなく 'Customer1'のアドレスを渡します:' ViewAddress(&Customer1); ' – Raindrop7

+0

これは私の理解に本当に役立ちました。 :) – Sol

+1

@Sol okいいよ。 – Raindrop7

関連する問題