Topic: bitset class design question: when to use member operators or non-member operators?


Author: Steve Ward <planet36@gmail.com>
Date: Sun, 13 May 2007 09:43:24 CST
Raw View
I have a design question about 3 (non-assignment) member operators in
the bitset class (23.3.5).

Why are operator~, operator<<, and operator>> defined as member
operators when they could be (perhaps better) defined as non-member
operators?  Are there any consequences if they were non-members?

It seems like they should be more similar to how non-members
operator&, operator|, and operator^ are defined (which all rely on
their respective assignment operators).

Or maybe the question can be turned around to ask why aren't
operator&, operator|, and operator^ members of bitset.

I'm asking this because I'm making my own implementation of the bitset
class.


member operators:
  operator~  utilizes member flip
  operator<< utilizes member operator<<=
  operator>> utilizes member operator>>=

non-member operators:
  operator& utilizes member operator&=
  operator| utilizes member operator|=
  operator^ utilizes member operator^=




Steve Ward

---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html                      ]