首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类记录器是可复制和可移动的,这有意义吗?

类记录器是可复制和可移动的,这有意义吗?
EN

Stack Overflow用户
提问于 2014-03-18 03:50:53
回答 2查看 60关注 0票数 0

最近我在这里问了很多问题。我正在考虑语义学。

没有什么会使复制或移动它变得困难,事实上,它只有一个成员函数log(),没有数据成员(可能在将来)。但在我看来,这种类型的对象是可复制和可移动的,这在逻辑上是不正确的。

EN

回答 2

Stack Overflow用户

发布于 2014-03-18 03:54:58

如果您计划在整个过程中只有一个登录,则使用静态对象,不需要复制和删除对象

如果您计划拥有有限数量的对象(例如,每个日志级别一个对象),并且这些对象很重(大缓冲区,odbc连接),那么值得拥有一个可移动和可复制的类。

但是,在可复制类中不能有互斥锁,因为互斥锁是不可复制的。

票数 0
EN

Stack Overflow用户

发布于 2014-03-18 04:59:04

简而言之:记录器有点像输出流,所以对流也是一样的。可移动的但不可复制的。

长篇答案:这分为两个决定,每个决定分成两个部分:

  • 我应该使此类型满足的记录器接口,保证可复制和可移动吗?

未来的记录器类型将可预测地包含流或互斥锁,这意味着接口不应该保证可复制,因为这些东西是不可复制的。记录器的vector可能有一定的意义,因此,如果您没有看到不能移动记录器的具体原因,那么使记录器可移动并不是完全没有意义的。

  • 是否应将此类设置为可复制和可移动?

这可能无关紧要,除非您说您计划在将来添加数据成员。也就是说,您将修改这个记录器类,而不是编写新的记录器类,这些记录器类使用不同的日志消息接收器满足相同的基本接口。如果你确定这是明智的,那么出于这个原因,同样的注意事项也适用于这个类,就像接口一样:不要让它成为可复制的。Movable可能不会有任何坏处,但也会带来一些小小的好处。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22463985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档