我试图确定导致此编译器错误的原因是“没有匹配的函数调用到address::set_street();。任何建议将不胜感激-谢谢

#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;

    }

最佳答案

这不是I / O在C++中的工作方式:您无法从流中读取并将结果传递给这样的setter。您需要先将街道读取为变量,然后将该var传递给set_street:

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

关于c++ - C++编译器错误- 'No matching function for call…',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12504692/

10-11 15:53