2012-09-20 87 views
1

我試圖確定這背後的編譯器錯誤的原因是「不匹配函數調用來解決:: set_street();任何意見,將不勝感激 - 感謝C++編譯器錯誤 - 「沒有呼叫匹配功能......」

#include <iostream> 
#include <string> 
using namespace std; 

    class address { 

    public: 

     address(); 

     void set_street(string street) { 
      streetname = street; 
     }; 


     string get_street() { 
      return streetname; 
     }; 


     void set_parish(string parish) { 
      parishname = parish; 
     } 

     string get_parish() { 
      return parishname; 
     } 

     void set_country(string country) { 
      countryname = country; 
     } 

     string get_country() { 
      return countryname; 
     } 


    private: 
     string streetname; 
     string parishname; 
     string countryname; 
    }; 


    int main(int argc, char* argv[]) { 

     system("color 0c"); 

     address enteredaddress; 

      cout<<"Enter street name" <<endl <<endl; 

     cin >>enteredAddress.set_street(); 

     cout<< endl; 


      system ("pause"); 

     return 0; 

    } 
+0

簽名是不同的。 –

+0

一個解決辦法是擺脫疲憊的getter和setter,使'streetname'一個'public'成員,並說'CIN >> enteredAddress.streetname;'。 –

回答

1

這不是如何在I/O工作在C++:你不能從一個流中讀取,並將結果傳遞到那樣的制定者。您需要首先將街道讀入變量,然後將該變量傳遞給set_street:

string tmpStr; 
cin >> tmpStr; 
enteredAddress.set_street(tmpStr); 
1

set_street()需要一個參數,它在尋找一個不帶任何參數,它不能找到一個,這就是爲什麼它的抱怨。

您需要輸入存儲在一個字符串變量,然後調用與字符串作爲參數的方法。

相關問題