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

  免費注冊 查看新帖 |

Chinaunix

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

內(nèi)聯(lián)了就找不到了? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-12-09 15:50 |只看該作者 |倒序瀏覽
本帖最后由 jchc 于 2011-12-09 15:58 編輯

出現(xiàn)個很奇怪的問題:如果類帶虛方法,且類中其它方法在實現(xiàn)時寫成內(nèi)聯(lián)的,最后鏈接時就說undefined symbol,例如:
class My {
public:
        virtual ~My(){}
public:
        void setConfiguration(const Configuration &);
protected:
        const Configuration getConfiguration();
private:
        Configuration        _dcf;
};

這里有兩個非虛方法,如果我在實現(xiàn)時寫成inline....,最后鏈接時就說找不到這兩個方法的實現(xiàn)。但如果把inline去掉立馬不報錯。為什么?

補充,這個類用內(nèi)聯(lián)方法實現(xiàn)后用nm看生成的.o,發(fā)現(xiàn)除了類名外,一個可用符號都沒有,且.o大小也才幾百字節(jié)。

論壇徽章:
0
2 [報告]
發(fā)表于 2011-12-09 16:44 |只看該作者
ISO C++11 3.2
3 ... An inline function shall be defined in every translation unit in which it is odr-used.
inline函數(shù)如果在被求值的表達式中被調(diào)用,定義必須放在和聲明同一個翻譯單元。
至于virtual和inline沒關(guān)系,雖然virtual以后實際一般不會內(nèi)聯(lián)。

論壇徽章:
0
3 [報告]
發(fā)表于 2011-12-09 16:53 |只看該作者
為什么只有“在被求值的表達式中被調(diào)用”才需要與頭文件放一起?
另外,個人覺得inline與否應(yīng)該是在實現(xiàn)時才確定,怎能在定義時就寫上?如果實現(xiàn)內(nèi)容變了那不更麻煩?

論壇徽章:
6
技術(shù)圖書徽章
日期:2013-11-13 11:11:27子鼠
日期:2014-02-20 17:54:13處女座
日期:2014-06-16 17:43:33午馬
日期:2014-08-08 09:11:17未羊
日期:2014-08-10 11:57:072015年辭舊歲徽章
日期:2015-03-03 16:54:15
4 [報告]
發(fā)表于 2011-12-14 12:04 |只看該作者
申明的時候就要申明成內(nèi)聯(lián)的

論壇徽章:
0
5 [報告]
發(fā)表于 2011-12-15 15:49 |只看該作者
估計是實現(xiàn)放在CPP中了
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP