仿指標類與仿函式類

2021-09-26 04:55:24 字數 1444 閱讀 9517

乙個類,如果它的物件使用時像是指標,或者函式那麼這個類就是乙個仿指標類與仿函式類。

在使用指標時,我們使用的運算子通常是*, &, ->。

對於函式我們使用的是函式呼叫運算子,也就是(   )

因此要使得乙個類像指標,那麼類內過載指標所使用的運算子不就行了。

同理,要使得類像乙個函式,那麼類內過載函式呼叫符就行了。

智慧型指標:

乙個類,卻具備指標的功能。

利用了操作符過載。

t& operator*() const

t* operator->() const

注意t* operator->() const
sp->method() 原本->運算子 作用後會 返回px,那麼結果應該是pxmethod(), 但是箭頭運算子有個特性,運算作用之後會繼續作用下去。

迭代器:

&( operator*() ) 首先對item呼叫operator*運算,也就是對item解引用,因此 &( operator*() ) 返回的就是&(*item)

發現了函式的奧秘了嗎?我們來看一下count_if函式stl的源**:

template ptrdiff_t count_if ( inputiterator first, inputiterator last, predicate pred )

個人理解: 就是乙個類,類中有乙個過載 ( )運算,函式呼叫時就是使用( )函式呼叫操作符,能使用( )運算子,形式上就像函式。

仿函式所使用的奇特base classes

有繼承一些 base classes

仿Matlab 矩陣類

說明 模仿matlab的思想對矩陣進行操作 利用 double data動態分配記憶體來儲存矩陣的的元素 主要功能 持續更新 執行例項 matrix.h 持續更新 include include include using namespace std void swap double a,doubl...

python 仿函式 C 仿函式

c 的標準庫stl裡面有6大部件,其中之一為仿函式。初始看到這一名字可能讓人摸不著頭腦 函式倒是挺容易理解,何故又起個仿函式的名字呢?本文將帶你揭開它看起來挺讓人迷惑但是實際上很簡單的面紗。仿函式,看名字就知道它肯定和函式有什麼關聯,但是也肯定和函式有什麼區別。函式主要是一塊接收輸入引數然後按照一定...

LeetCode官方ListNode類仿寫

class listnode leetcode官方listnode類仿寫 模擬官方功能 主要用於本地ide除錯 參考 def init self,val 構造器 param val 構造物件 self.cycle false ifisinstance val,list iflen val 1 sel...