Deletion of copy-ctor & copy-assignment - public, private or protected?

前端 未结 5 807
感情败类
感情败类 2020-12-15 02:54

In order to make an object non-copiable we can explicitly delete both its copy-constructor and copy-assignment operator.

My question is: What is the right place to

5条回答
  •  别那么骄傲
    2020-12-15 03:23

    what is the right place to do it - in the public, private or protected section of the class?

    I would put them in the public section.

    This is because deleting a constructor or an assignment operator is orthogonal to making them private / protected; and when these aren't deleted, they are public by default. Putting the deletions in one of those two sections seems to me like hinting "If I hadn't deleted them, I would have made them private/protected" - which is not a message you want to convey in your case.

    Note, though, that the compiler doesn't care which section you put the deletion in.

提交回复
热议问题