Когда я использую нестатические методы, как я могу легко найти места, где они вызываются?
Функция-член класса может быть вызвана вчисло путей,
Через экземпляр класса
Через полиморфное поведение (динамическая диспетчеризация)
Для первого случая - любой достаточно хороший инструмент анализа кода илиIDE сможет сообщить вам класс, из которого вызывается функция, в зависимости от типа объекта, но я думаю, что нет простого способа отследить второй случай без изучения кода, я сомневаюсь, что какой-либо из инструментов анализа кодадостаточно умен, чтобы точно сказать, какой метод класса вызывается (конечно, Source Insight этого не делает), потому что отправка динамическая, а не время компиляции.
Лучше использовать функции или статические методывместо нестатических методов насколько это возможно?
Чтобы использовать или не использовать static method
, требуется гораздо более глубокая мысль, чем просто возможность найти функции в видеearch.
Статические функции не имеют указателя this
, поэтому вы не можете получить доступ к нестатическим членам внутри них. Они могут работать только со статическими членами класса.