[英]begin() method declaration in Mat class opencv
在查看有關使用begin()方法的opencv參考手冊時,我來到了以下聲明:
template<typename _Tp> MatIterator_<_Tp> Mat::begin()
我不太擅長C ++,我只是想知道“ MatIterator”是什么,以及“ _”的整個用法是什么? (在C ++中它有什么特殊含義)
在C ++中,下划線所附加的唯一特殊含義是, _Tp
名稱, _Tp
在其后帶有另一個下划線或大寫字母,以供實現。
尾隨的下划線(例如在MatIterator_
)通常用於表示類成員。
從外觀MatIterator_
, MatIterator_
是一種類型,顯然用作矩陣上的迭代器。
至於整個聲明,它看起來像:
“ template”“ <” template-parameters “>” 返回類型 * function-name *“(”“ function-parameters ”)“
哪里:
template-parameter可以是class
或typename
后跟任意名稱(它也可以是非類型模板參數或模板模板參數,但由於本文未使用任何代碼,因此我們不再贅述)。 實例化模板時,此名稱將表示實例化模板的類型。
return-type只是某種類型,它將是函數返回的類型。 在這種情況下,它取決於template參數,因此它說“對於某些類型_Tp
,這將返回稱為MatIterator<_Tp>
的類型”。
function-name只是您要定義的函數的名稱。 在這種情況下,它是成員函數,因此形式為“類名::成員名”。
在這種情況下, function-parameters為空,因此我們也不會考慮。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.