Re[9]: бессмысленные интерфейсы
От: B0FEE664  
Дата: 23.02.22 15:37
Оценка:
Здравствуйте, AlexGin, Вы писали:

BFE>>Что такое "проблема перекрёстных ссылок"?

AG>
BFE>>class Node
BFE>>{
BFE>>public:
BFE>>    Node(const std::string& sNameOfNode); // C-tor
BFE>>   ~Node(); // D-tor
BFE>>    std::string GetNameOfNode() const;
BFE>>    const std::vector<SubNode>& GetVectOfChilds() const;
BFE>>    void AddNode(SubNode p);
BFE>>private:
BFE>>    std::vector<SubNode> m_SubNodes; // Здесь ссылаемся на объект типа SubNode
BFE>>};

BFE>>class SubNode // Интерфейс узла:
BFE>>{
BFE>>public:
BFE>>    std::string                 GetNameOfNode() const     {  return m_node->GetNameOfNode();  }
BFE>>    const std::vector<SubNode>& GetVectOfChilds() const   {  return m_node->GetNameOfNode();  }
BFE>>    void                        AddNode(SubNode node)     {  return m_node->AddNode(node);    }        
BFE>>public:
BFE>>    std::shared_ptr<Node> m_node; // Здесь ссылаемся на объект типа Node
BFE>>};
BFE>>
AG>

AG>Вот отсюда и _проблема_перекрёстных_ссылок_
Нет тут никакой проблемы. Просто следует отделять декларации от имплементации, как это сделано постом выше.

AG>>так и для тестирования основы нашего проекта.

BFE>>Про связь с тестированием я не понял.
AG>>Вот насчёт тестов:
AG>>https://chromium.googlesource.com/external/github.com/google/googletest/+/refs/tags/release-1.8.0/googlemock/docs/ForDummies.md
AG>>https://chromium.googlesource.com/external/github.com/google/googletest/+/refs/tags/release-1.8.0/googlemock/docs/FrequentlyAskedQuestions.md#how-am-i-supposed-to-make-sense-of-these-horrible-template-errors

BFE>>И где конкретно у них написано, что продакшен код надо замедлять, чтобы проще было писать тесты?

AG>Кто и где предлагал замедлять продакшн код? Что есть фактор замедления?
AG>

Если приходится изменять код, чтобы подстроится под тесты, значит с тестами что-то не так.

AG>P.S. Если ты предполагаешь, что вызов через таблицу виртуальных функций (vtable) вносит замедление,

AG>то для аппаратуры последних 15 лет это уже не актуально.
Это память не актуальна, а вот скорость... Всё так же тормозят приложения и системы.
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.