LINUX.ORG.RU

[C++] статические функции

 


0

0

Для примера - возьму qt.

Правильно ли вызывать статическую функцию как функцию член-класса или писать явно имя_класса::функция

Пример - как правильно - QObject::connect(...) или просто connect(...) в конструкторе класса пронаследованного от QWidget. Как себя поведёт в этом случае линковщик? какой вызов окажется быстрее? или и то и то будет совершенно одинаково?

P.S. то что QObject::connect понижает читаемость кода и так понятно.

Компиллятор и линковщик поведут себя абсолютно одинаково, никакой пенальти в скорости не будет.

Первое правило программирования среди всех правил, которое озвучено в книге Александреску и Саттера, гласит:

"Программа пишется для человека, а не для машины."

Исходя из этого главным критерием стаёт насколько читателю вашего кода (да и вам самим через время) будет очевиден его смысл. Считаю что независимо от того позволяет ли компиллятор указывать пространство имён - стоит всегда писать его явно. (Особые товарищи явно даже this-> разименовывают, что лично я считаю моветоном.)

Dendy ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.