亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3116 | 回復(fù): 5
打印 上一主題 下一主題

[C++] 【SOLVED】<map>容器內(nèi)自定義類型重載<<操作符失敗 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-12-27 10:17 |只看該作者 |倒序?yàn)g覽
本帖最后由 qqqqblog 于 2013-12-27 15:34 編輯

求助,注釋掉的那行編譯失敗,說找不到構(gòu)造函數(shù)
  1. #include <iostream>
  2. #include <string>
  3. #include <map>
  4. using namespace std;

  5. class c
  6. {
  7.   string s;
  8. public:
  9.   c(string s)
  10.     :s(s)
  11.   {};
  12.   friend ostream& operator <<(ostream& os, const c& c)
  13.   {
  14.     os << c.s;
  15.     return os;
  16.   }
  17.   string get_s()
  18.   {
  19.     return s;
  20.   }
  21. };

  22. typedef std::map<char, c> mymap;

  23. int main ()
  24. {
  25.   std::string s0 ("Initial string");
  26.   c m("ddd");
  27.   std::cout << m;

  28.   mymap foo;
  29.   c my_c("abcd");
  30.   foo.insert( make_pair<char, c>('a', my_c));
  31. //  std::cout << foo["a"]; // HELP: Compile error here
  32.   return 0;
  33. }
復(fù)制代碼

論壇徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉雞
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥豬
日期:2014-04-22 16:13:09獅子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53處女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [報(bào)告]
發(fā)表于 2013-12-27 10:37 |只看該作者
本帖最后由 Herowinter 于 2013-12-27 10:38 編輯

回復(fù) 1# qqqqblog

foo["a"]改為foo['a']
再寫一個(gè)空的無參構(gòu)造函數(shù),
這樣可以了。
  1. #include <iostream>
  2.     #include <string>
  3.     #include <map>
  4.     using namespace std;

  5.     class c
  6.     {
  7.       string s;
  8.     public:
  9.       c(){}
  10.       c(string s)
  11.         :s(s)
  12.       {}
  13.       friend ostream& operator <<(ostream& os, const c& c)
  14.       {
  15.         os << c.s;
  16.         return os;
  17.       }
  18.       string get_s()
  19.       {
  20.         return s;
  21.       }
  22.     };

  23.     typedef std::map<char, c> mymap;

  24.     int main ()
  25.     {
  26.       std::string s0 ("Initial string");
  27.       c m("ddd");
  28.       std::cout << m;

  29.       mymap foo;
  30.       c my_c("abcd");
  31.       foo.insert( make_pair<char, c>('a', my_c));
  32.       std::cout << foo['a']; // HELP: Compile error here
  33.       return 0;
  34.     }
復(fù)制代碼

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2013-12-27 10:51 |只看該作者
本帖最后由 qqqqblog 于 2013-12-27 11:05 編輯

. . . . . . .

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2013-12-27 11:04 |只看該作者
回復(fù) 2# Herowinter


   
感謝大師!
請問<map>[]操作返回自定義值的引用,為啥要加空構(gòu)造函數(shù)呢?

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2013-12-27 11:12 |只看該作者
stl_map.h

里有

__i = insert(__i, value_type(__k, mapped_type()));

論壇徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉雞
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥豬
日期:2014-04-22 16:13:09獅子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53處女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
6 [報(bào)告]
發(fā)表于 2013-12-27 11:36 |只看該作者
回復(fù) 4# qqqqblog
insert時(shí)會(huì)調(diào)用c類的無參構(gòu)造函數(shù)

   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP