Предположим, что у каждого есть два C++
класса, которые поддерживают операции только для чтения и только для записи в файловом дескрипторе соответственно.
class ReadFd {
public:
ssize_t read( /* */ ) {
// read from file_descriptor_
}
protected:
int file_descriptor_;
};
class WriteFd {
public:
ssize_t write(/* */) {
// write to file_descriptor_
}
protected:
int file_descriptor_;
};
Теперь предположим, что нужно определить класс ReadWriteFd
, который поддерживает операции чтения и записи.
У меня вопрос, как спроектировать такой класс чтения-записи, чтобы избежать дублирования кода?
Я не могу наследовать от ReadFd
и WriteFd
, потому что, очевидно, мне нужен только один file_descriptor_
. Реальная ситуация, с которой я столкнулся, немного сложнее, но концепция здесь отражает ее довольно близко.