对不起,可能太简单的问题,我是新手在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