C typedef void className SymbolName應該怎樣理解?

時間 2021-06-03 06:13:36

1樓:

第一句是定義了指向類 Connection 中 void* 型別的成員的指標型別 RestrictedBool。關於指向類資料成員的指標:pointer to data member。

指向類資料成員的指標,和我們一般說的指標很不相同,比如不能被 delete(這一點和用它來做 safe bool 有關)

structA;

intmain

()』 argument given to 『delete』, expected pointer

return0;

}第二句,一開始我不懂為什麼要這樣寫。根據 @d41d8c 的回答,我搜了一下 safe bool idiom,找到一篇寫的很詳細的文章:管清文:

The Safe Bool Idiom,才明白了這樣寫的意義。雖然文章中的 safe bool idiom 方案是返回指向成員函式的指標(pointer to member function),和這裡返回指向類成員的指標不同,但不妨礙理解。

P.S. 在今天刷到這個問題之前,我都不知道指向類資料成員的指標能拿來幹嗎,原來還有這種操作,奇怪的知識增加了.jpg。

2樓:鹹蛋

先把className去掉

再加上現在這個型別必須和className::*即成員指標一致

即乙個className類內的void*型別

3樓:猴子

這是typedef的一種寫法而已。

常見的寫法會是`typedef int myint`。將`int`重新定義為`myint`。那如果你要重新定義的型別或者名稱沒有定義過了?這時就可以使用題目中的這種方式定義。

在這裡`SymbolName`就是你重新定義的名稱,它是乙個屬於`classname`類下的、返回`void*`的方法(函式)指標。

4樓:趙天宇

C++typedef的詳細用法 - 風雪之殤 - 部落格園那麼思考,你的這個代表的是:

等價於宣告:

void

*operator

Connection

::*RestrictedBool

()const

;我自己也不太確定,思考僅供參考。

個人覺得就是簡化定義了操作符的函式定義方式。

怎樣形象理解碼元?

函虎垃圾處理器 問下曼徹斯特編碼這張圖 最左邊0 乙個電平公升高變化 00的話之間怎麼又下降了?01 10的話就沒問題 代表乙個碼元代表一bit 0是指公升電平?不是有電才計1嗎? 乙個碼元 數碼訊號 矩形脈衝 or 模擬訊號 n個正余弦週期 n 1 4進製信號碼元表示 雙極性的二進位制數字基帶信號...

我應該文轉理嗎

豆豆 理科轉文科比較容易,文科轉理科除非你真的邏輯思維很厲害,就拿數學來說文理科難度不在乙個層次,還別說物理化學,有機化學就能搞死一大批人。我就是高三理科轉文科的,全校那一屆就我乙個,謝天謝地我考上大學了。 鶴影 福建高二理科女 說實話,不建議轉。你落的太多了。數學,你要再多學乙個空間直角座標系,微...

應該幫親不幫理,還是幫理不幫親?

cindy 肯定是幫親,如果不是,要親人朋友何用?人類社會從古至今,是群居動物,需要互相幫助才能長久地存活下去,如果身邊人不幫你,結伴有何意義?所謂的幫理不幫親,本質就是不夠親,就那麼簡單。 幫理不幫親,如果真的我的親戚或者朋友出現了嚴重的道德問題或者三觀問題,那他就不配當我的親戚和朋友,為什麼要幫...