class facet {
protected:
explicit facet(size_t refs = 0);
virtual ~facet();
private:
facet(const facet&) // not defined
void operator=(const facet&) // not defined
};
The member class serves as the base class for all locale facets. Note that you can neither copy nor assign an object of
class facet
. You can construct and destroy objects derived from class locale::facet
, but not objects of the base
class proper. Typically, you construct an object myfac
derived from facet
when you construct a locale, as in:
locale loc(locale::classic(), new myfac);
In such cases, the constructor for the base class facet
should have a zero refs
argument. When the object is no
longer needed, it is deleted. Thus, you supply a nonzero refs
argument only in those rare cases where you take
responsibility for the lifetime of the object.