我有一个简单的问题,在头文件中实现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_;
};
Run Code Online (Sandbox Code Playgroud)
dor*_*ron 18
优点
getter和setter将被内联,因此它们不会有任何函数开销.
坏处
您将无法对getter和setter进行任何更改,而无需使用您的类重新编译所有代码.当您的类的实现位于不同的DLL或.so文件中时,这尤其糟糕.
我个人不喜欢在头文件中放置getter和setter.