В C ++, каков идиоматический способ определения operator=
для класса, который должен быть неизменным.Например, все его переменные-члены const
.
typedef unsigned char byte;
class Binary
{
protected:
const unsigned long size;
const byte* bytes;
public:
Binary(const unsigned long size);
Binary(const Binary &b);
~Binary(void);
Binary& operator=(const Binary &b);
};
где bytes
- указатель на блок памяти malloc
ed во время выполнения.
Определить ли пустой оператор присваивания или разрешить ему использовать автоматически сгенерированныйкоторый, очевидно, потерпит неудачу?
Я пытаюсь реализовать и применить семантику одиночного присваивания в нескольких выбранных классах.