在头文件中实现getter和setter

时间:2014-04-29 13:58:54

标签: c++ setter getter

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

1 个答案:

答案 0 :(得分:15)

<强>优势

getter和setter将被内联,因此它们不会有任何函数开销。

<强>缺点

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

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