This question already has answers here:
What are the basic rules and idioms for operator overloading?

(7个答案)


5年前关闭。




我正在尝试打印存储在字符串中的地址值。编译后,显示错误:no match for 'operator<<'。这是否意味着Address_list中的内容与某些内容不匹配?
#include <iostream>
#include <string>
#include <map>
#include "IPHost.h"

using namespace std;

int main() {
    map<string, IPHost> Address_list;
    Address_list["google.com"]=IPHost(74,125,225,20);
    cout << "google.com has address" << Address_list["google.com"] << endl;
}

最佳答案

Address_list["google.com"]

将返回您先前存储的IPHost class实例。然后它将尝试将operator<<应用于发出错误的那个实例。

这意味着您没有为IPHost class重载operator <
07-24 09:51