C++ 编译器错误 - 'No matching function for call...'

标签 c++ visual-c++

我正在尝试确定此编译器错误背后的原因,即“没有匹配的函数调用地址::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。您需要先将街道读入一个变量,然后将该变量传递给 set_street:

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

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

相关文章:

c++ - 将数字与 NaN 进行比较的结果是什么?

c++ - 如何正确删除 std::stack 中的指针?

c++ - 执行 switch 语句中的所有情况 - 具体问题

C++等待和休眠问题

c++ - 实现 CException C++ 类时需要考虑哪些事项

c++ - 如何将整个 Visual c++ 项目加载到 Enterprise Architect 中以对其进行逆向工程?

visual-c++ - 如何使用 Visual C++ 读取媒体文件的信息?

c++ - 在 sqlite 中将 char* 作为 vector<byte> 插入

c++ - Windows 操作系统的 strerror_r 的替代 api

c++ - VC++ : Invalid template argument