1

我试图确定这个编译器错误背后的原因是'没有匹配的函数调用到 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;

    }
4

2 回答 2

1

set_street()需要一个参数,它正在寻找一个没有任何参数的参数,但它找不到一个参数,这就是它抱怨的原因。

您需要将输入存储在字符串变量中,然后使用该字符串作为参数调用该方法。

于 2012-09-20T00:33:58.853 回答
1

这不是 I/O 在 C++ 中的工作方式:您不能从流中读取并将结果传递给这样的设置器。您需要先将街道读入一个变量,然后将该变量传递给 set_street:

string tmpStr;
cin >> tmpStr;
enteredAddress.set_street(tmpStr);
于 2012-09-20T00:35:46.370 回答