在头文件中实现getter和setter
Implement getters and setters in header file
我有一个简单的问题,像这样在头文件中实现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。
相关文章:
- 如何为 C 型字符串数组编写 getter 和 setter?
- 有没有办法在没有括号的情况下在C++中调用成员的getter/setter?
- Boost python getter/setter with the same name
- 如何为数组成员变量声明 getter/setter
- 具有多行字符串宏观的Getter/Setter生成
- 专用对象"getter setter"特定对象
- 具有相同名称的Getter/Setter
- C++ 中 getter setter 和构造函数之间的视觉差异
- C++中的getter/setter是正确的方法
- 绑定C++成员变量:getter/setter 或原始指针
- C++getter/setter、互斥、细粒度锁定
- Getter & Setter 的最佳性能
- 如何在公共 API 接口类中将 auto getter&setter 与 PIMPL 设计模式相结合
- 混合getter /setter和普通变量
- 如何重构冗余的getter/setter方法
- 如何在托管c++中使用手写的getter/setter定义属性
- C++ getter/setter paradigm
- C++ Getter/Setter (Alternatives?)
- 使用值包装器和 operator() 重载来简化 getter/setter 设计:这是一种危险的做法
- c++中堆对象getter / setter的更好实践