Информация об изменениях

Сообщение Как лучше передавать объект в функцию? от 06.04.2018 19:40

Изменено 06.04.2018 19:43 Максим Рогожин

Как лучше передавать объект в функцию?
Привет,
объясните, пожалуйста, как правильно/лучше делать если функции нужно только читать какие-то свойства объекта, но не нужно его менять:
class Document;

class DocumentAnalyser {
public:
   virtual bool analyse(const Document* doc) const; // передавать по указателю?
   virtual bool analyse(const shared_ptr<Document> doc) const; // или по shared_ptr лучше?
};

shared_ptr<Document> nextDocument();
documentAnalyser->analyse(nextDocument().get()); // так?
documentAnalyser->analyse(nextDocument()); // или так?
Как лучше передавать объект в функцию?
Привет,
объясните, пожалуйста, как правильно/лучше делать если функции нужно только читать какие-то свойства объекта, но не нужно его менять:
class Document;

class DocumentAnalyser {
public:
   virtual bool analyse(const Document* doc) const; // передавать по указателю?
   virtual bool analyse(const shared_ptr<Document> doc) const; // или по shared_ptr лучше?
};

shared_ptr<Document> nextDocument();
documentAnalyser->analyse(nextDocument().get()); // так?
documentAnalyser->analyse(nextDocument()); // или так?


UPDATE:
А если nextDocument() вот так объявлена:
std::unique_ptr nextDocument();

тогда как лучше?