亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于C++API知識的一些提問。

關于C++API知識的一些提問。

生生不息的他 2018-10-29 20:36:15
第二幅图里有一句话:客户仍然可以通过该方法返回整型套接字句柄修改类的状态。 这里有几个问题看不懂(#-.-) 第一:结合书上的SocketDisconnect方法不是返回bool型吗?怎么变成返回整型套接字句柄了? 第二:什么是修改类的状态,没听说过啊,各位大仙可以解释下么?而且返回整型套接字句柄怎么修改类的状态啊? 对了还有这样一句话:如果返回指向某个私有成员变量的no-const指针或引用,那也会发生同样内部状态泄露。 也请各位大仙解释一下这句话的意思。 拜托了,真的想不明白,网上也找不到相似的资料。
查看完整描述

3 回答

?
onemoo

TA貢獻883條經驗 獲得超454個贊

你提到的那句話在第一幅圖里吧。


對于你的第一問:結合上下文,這句話中的“該方法”指的應該是 GetSocket() 吧。


對于你的第二問:所謂“類的狀態”指的就是對象本身具有的那些屬性,比如類實例自己的成員變量之類的。

“整型套接字句柄怎么修改類的狀態?。俊? 顯然有其他的方式——比如某些更底層的函數——可以通過套接字句柄來改變套接字的狀態。

GetSocket 函數被修飾為 const,這表示設計者并不希望調用這個函數會導致類實例的成員變量(或者說自身的狀態)被修改??墒撬祷亓司浔?,可能有其他函數可以通過這一句柄來修改套接字,這就違背了設計者的初衷,所以說這樣的設計是糟糕的。


這其實就是最基本的封裝細節的面向對象思想。如果你不明白(或者看不懂上面的解釋),我覺得你不如再把這些最最基礎的面向對象概念好好復習下......? ? 你提的這個問題表現出你還沒有完全理解面向對象的思想,可能也沒有學明白 C++。

查看完整回答
反對 回復 2018-10-29
?
生生不息的他

TA貢獻1條經驗 獲得超0個贊

圖片的順序放錯了,所以問題是:第一幅圖里有一句話:客戶仍然可以通過該方法返回整型套接字句柄修改類的狀態……

查看完整回答
反對 回復 2018-10-29
  • 3 回答
  • 0 關注
  • 1754 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號