對不起,可能太簡單的問題,我是新手在c + +。我應該如何實現int
字段,該字段只能在類中修改,但具有公共訪問器?私人領域與公共accessor在c + +
在C#中,我們可以這樣寫簡單的代碼:
public int MsgSeqNum { get; private set; }
在C++中,我應該會寫類似的東西(僞代碼):
public:
int GetMsgSeqNum() { return msgSeqNum; };
private:
int msgSeqNum;
它是做事的正確方法?將GetMsgSeqNum
內聯?我應該手動將方法標記爲inline
?我是否會引入延遲添加此方法調用?
我不擔心它。對你的編譯器有一定的信心,但是如果你願意的話,可以自由地使它成爲「內聯int GetMsgSeqNum」。 – 2013-04-23 11:41:50
如果它對客戶是隻讀的,那麼就像你一樣,不要提供setter。如果它有複雜的邏輯或者需要警衛來檢查輸入(你的例子並不是一個int),那麼也提供一個私有集合方法,並在內部使用它。 – wmorrison365 2013-04-23 11:43:13
@JamesMcLaughlin這裏沒有必要使用inine,7.1。2函數說明符'在類定義中定義的函數是一種內聯函數。「C++ 11標準,它和之前一樣。 – alexrider 2013-04-23 12:05:01