我有一个简单的问题,在头文件中实现getter和setter是一个好习惯吗?
class WebsocketSession : public boost::enable_shared_from_this<WebsocketSession>{
public:
WebsocketSession(boost::asio::io_service& io_service, WebsocketServer& server);
tcp::socket& getSocket() { return socket_; } // <--- This
private:
tcp::socket socket_;
WebsocketServer& server_;
};
答案 0 :(得分:15)
<强>优势强>
getter和setter将被内联,因此它们不会有任何函数开销。
<强>缺点强>
您将无法对getter和setter进行任何更改,而无需使用您的类重新编译所有代码。当您的类的实现位于不同的DLL或.so文件中时,这尤其糟糕。
我个人不喜欢在头文件中放置getter和setter。