在头文件中实现getter和setter

Implement getters and setters in header file

本文关键字:getter setter 实现 文件      更新时间:2023-10-16

我有一个简单的问题,像这样在头文件中实现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_;
};

优势

getter和setter将被内联,因此它们将没有函数开销。

缺点

如果不使用类重新编译所有代码,您将无法对getter和setter进行任何更改。当类的实现位于不同的DLL或.so文件中时,这种情况尤其糟糕。

我个人不喜欢在头文件中放置getter和setter。