一個類的抽象成員應該是指針還是引用?類的抽象成員應該是指針還是引用?
對於玩具的例子,比如說我有下面的類:
class SerializedFileProcessor {
public:
std::string Process(std::string file) const {
std::string text = deserializer.Deserialize(file);
text = processor.Process(text);
return serializer.Serialize(text);
}
private:
IDeserializer? deserializer;
IProcessor? processor;
ISerializer? serializer;
};
凡解串器,處理器和串行器(具體子類的實例)都傳遞到這個類的構造函數。
SerializedFileProcessor不擁有這些,不應刪除它們。
這些類成員應該是指針還是引用?或者這種模式應該完全不同?
我不認爲這與抽象性有關。 – djechlin
我可能會誤解,但由於類型IW是抽象的,數據不能被複制到SerializedFileProcessor中。這是我指定他們是抽象類的唯一原因。 – Mistodon
如果您能夠使用引用,請始終將它們優先於指針。 –