pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

是“內聯"嗎?隱含在類定義中定義的 C++ 成員

Is quot;inlinequot; implicit in C++ member functions defined in class definition(是“內聯嗎?隱含在類定義中定義的 C++ 成員函數中)
本文介紹了是“內聯"嗎?隱含在類定義中定義的 C++ 成員函數中的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

根據 C++ 規范,以下兩個類是否等價定義?

According to the C++ specification, are the following two classes equivalently defined?

class A
{
   void f()
   {
   }
};

class B
{
   inline void f()
   {
   }
};

即,將內聯"限定符放在類定義中定義的此類成員函數上是否完全多余?

i.e., is putting the "inline" qualifier on such member function defined in the class definition completely redundant?

后續問題:假設它是多余的,對于代碼風格,保留內聯"標簽是否明智,因此未來的開發人員意識到應該內聯該函數,并且不會刪除其他地方的定義并刪除內聯?

Followon question: Assuming it is redundant, for code style, would it be sensible to keep the "inline" tag, so a future developer realises that function should be inlined, and does not remove the definition somewhere else and remove the inlining?

謝謝:)

推薦答案

它們是等價的類定義,除了單一定義規則的用途.所以標準不保證你可以用一個類定義編譯一個 TU(翻譯單元),用另一個編譯一個不同的 TU,然后將它們鏈接在一起.我懷疑這是否會在真正的實現中失敗,但這就是標準所說的.

They're equivalent class definitions except for the purposes of the One Definition Rule. So the standard does not guarantee that you can compile one TU (translation unit) with one class definition and a different TU with the other, and then link them together. I doubt that this would ever actually fail on a real implementation, but that's what the standard says.

inline 關鍵字幾乎與內聯無關.這是關于在不同的 TU 中是否允許函數的多個相同定義.如果有人把函數定義移到別處,那么他們應該根據以下基礎決定是否標記它inline:

The inline keyword has approximately nothing to do with inlining. It's about whether multiple identical definitions of the function are permitted in different TUs. If someone moves the function definition elsewhere, then they should decide whether to mark it inline on the following basis:

  • 如果它在該類的 .cpp 文件中,那么如果它僅從該 TU 調用,則將其標記為 inline 是有效的.那么它是否標記為 inline 可能沒有區別,但是如果您認為編譯器會注意您的內容,則可以將其標記為 inline 作為編譯器提示想要.

  • If it is in a .cpp file for that class, then it's valid to mark it inline if it's called only from that TU. Then it probably makes no difference whether it is marked inline or not, but you could mark it inline as a compiler hint if you think the compiler will pay any attention to what you want.

如果它仍在頭文件中,則必須將其標記為inline,否則在鏈接使用該頭文件的不同 TU 時會出現多個定義錯誤.

If it is still in the header file, then it must be marked inline, or else you'll get multiple definition errors when linking different TUs that use the header.

假設移動函數的人知道那些東西,我認為他們不需要在類定義中提醒.如果他們不知道這些事情,那么他們可能無法移動該函數,但對他們來說,使用 inline 關鍵字來移動它會更安全.

Assuming that the person moving the function knows those things, I don't think they need a reminder in the class definition. If they don't know those things, then they probably have no business moving the function, but it would be safer for them to have an inline keyword to move with it.

這篇關于是“內聯"嗎?隱含在類定義中定義的 C++ 成員函數中的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Assertion failed (size.widthgt;0 amp;amp; size.heightgt;0)(斷言失敗(size.width0 amp;amp; size.height0))
Rotate an image in C++ without using OpenCV functions(在 C++ 中旋轉圖像而不使用 OpenCV 函數)
OpenCV: process every frame(OpenCV:處理每一幀)
Why can#39;t I open avi video in openCV?(為什么我不能在 openCV 中打開 avi 視頻?)
OpenCV unable to set up SVM Parameters(OpenCV 無法設置 SVM 參數)
Convert a single color with cvtColor(使用 cvtColor 轉換單一顏色)
主站蜘蛛池模板: 过跨车_过跨电瓶车_过跨转运车_横移电动平车_厂区转运车_无轨转运车 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | 拉力测试机|材料拉伸试验机|电子拉力机价格|万能试验机厂家|苏州皖仪实验仪器有限公司 | 编织人生 - 权威手工编织网站,编织爱好者学习毛衣编织的门户网站,织毛衣就上编织人生网-编织人生 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 深圳品牌设计公司-LOGO设计公司-VI设计公司-未壳创意 | 橡胶膜片,夹布膜片,橡胶隔膜密封,泵阀设备密封膜片-衡水汉丰橡塑科技公司网站 | 北京自然绿环境科技发展有限公司专业生产【洗车机_加油站洗车机-全自动洗车机】 | 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | BOE画框屏-触摸一体机-触控查询一体机-触摸屏一体机价格-厂家直销-触发电子 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 西门子气候补偿器,锅炉气候补偿器-陕西沃信机电工程有限公司 | 江苏农村商业银行招聘网_2024江苏农商行考试指南_江苏农商行校园招聘 | 西安文都考研官网_西安考研辅导班_考研培训机构_西安在职考研培训 | 进口消泡剂-道康宁消泡剂-陶氏消泡剂-大洋消泡剂 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 镀锌角钢_槽钢_扁钢_圆钢_方矩管厂家_镀锌花纹板-海邦钢铁(天津)有限公司 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 杭州中策电线|中策电缆|中策电线|杭州中策电缆|杭州中策电缆永通集团有限公司 | 圣才学习网-考研考证学习平台,提供万种考研考证电子书、题库、视频课程等考试资料 | 翅片管散热器价格_钢制暖气片报价_钢制板式散热器厂家「河北冀春暖气片有限公司」 | 算命免费_生辰八字_免费在线算命 - 卜算子算命网 | 南京欧陆电气股份有限公司-风力发电机官网| 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 电子书导航网_电子书之家_电子书大全_最新电子书分享发布平台 | 包装盒厂家_纸盒印刷_礼品盒定制-济南恒印包装有限公司 | 天津散热器_天津暖气片_天津安尼威尔散热器制造有限公司 | 细沙回收机-尾矿干排脱水筛设备-泥石分离机-建筑垃圾分拣机厂家-青州冠诚重工机械有限公司 | 翅片管换热器「型号全」_厂家-淄博鑫科环保 | 钢格板_钢格栅_格栅板_钢格栅板 - 安平县鑫拓钢格栅板厂家 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 短信营销平台_短信群发平台_106短信发送平台-河南路尚 | 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 防爆电机生产厂家,YBK3电动机,YBX3系列防爆电机,YBX4节防爆电机--河南省南洋防爆电机有限公司 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | EFM 022静电场测试仪-套帽式风量计-静电平板监测器-上海民仪电子有限公司 |