C_and_CPP 板


LINE

※ [本文转录自 Programming 看板] 请教各位程式设计的高手们, 我写c++的时候,遇到物件使用上的问题, 以下是我的code以及vc6与gnu c++的compile之错误讯息 class src { public: src() { } }; class ic: public src { public: ic(src& s) { } }; class mpd: public src { public: mpd() { } mpd(src& a) { } mpd(src& a, int b) { } }; void fun() { ic a(src()); ic b(mpd(a)); ic c(b); } int main(int argc, char* argv[]) { ic a(src()); ic b(mpd(a, 1)); ic c(b); return 0; } 以白话来描述之,则是 我这段code一共有3个角色 src: 物件来源 mpd: 物件来源的一种,继承於src ic: 物件内容,本身也可为物件来源 其中,物件内容(ic)可由物件来源(src)建构 ic::ic(src& s) 当然,mpd也是src的一种,因此物件内容 也可以由mpd来建构,例如 mpd m; ic a(m); // works well 亦可由ic本身来建构(since ic extends src) mpd m; ic a(m); ic b(a); // still works well mpd可由两种方式建构, 一种是传入一个src,另一种是传入一个src和一个整数 mpd::mpd(src& a); mpd::mpd(src& a, int b); 因此以下的code可以正确编译 src s; mpd m(s); ic a(m); ic b(a); 但是重点在於,我将上述的code 转换成 src s; ic a(mpd(s)); ic b(a); 的时候却会出现以下的错误讯息: error C2664: '__thiscall ic::ic(class src &)' : cannot convert parameter 1 from 'class ic (class mpd)' to 'class src &' Context does not allow for disambiguation of overloaded function 以gnu c++的compiler则出现 a.cpp: In function `int main(int, char**)': a.cpp:28: no matching function for call to `ic::ic(ic (&)(mpd))' a.cpp:10: candidates are: ic::ic(const ic&) a.cpp:13: ic::ic(src&) 但是若换成mpd当中的传入两个参数的constructor却能够compile 也就是 src s; ic a(mpd(s, 1)); ic b(a); 我觉得相当困惑,为何会有这样的现象 麻烦各位高手若可以的话, 请提出您的看法,感激不尽!! mips 敬上 ※ 编辑: mips 来自: 140.113.241.36 (02/08 19:58)
1F:推 godfat:难倒我了…不过如果不用暂时物件就不会有错误了, 02/08 21:45
2F:→ godfat:也许暂时物件的型别还有特别规则吧 02/08 21:46
3F:推 UNARYvvv:temp object => const object 就这样 02/09 02:32







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP