Принимая это в качестве примера:
У меня 20 структур. Я получаю доступ ко всем полям структуры напрямую, получаю значения из них, указатели на другие подструктуры, которые они могут иметь, и т. Д.
Сейчас я реструктурирую программу:
Вместо прямого обращения к полям структур, я инкапсулировал всю структуру в их собственные соответствующие классы и имею функции для всех возможных get () и set (x).
Вопрос: есть ли влияние на производительность для использования методов / функций вместо непосредственного доступа к структурам?
Какой-то предполагаемый% был бы хорош, или какое-то объяснение.
В общем, не должно быть разницы в производительности, если методы получения и установки определены внутри класса. Практически для любого современного компилятора вызов функции будет расширен встроенным, не оставляя лишних затрат. Это часто будет верно для различных небольших встроенных функций. (См., Например, http://www.gotw.ca/publications/mill18.htm, где Херб Саттер обсуждает, почему создание большинства / всех виртуальных функций непубличными не добавляет накладных расходов к результирующему коду.)
Обратите внимание, что если вы определите встроенную функцию в классе, любой клиентский код необходимо будет перекомпилировать, если определение когда-либо изменится. Но это относится к большинству / всем изменениям в заголовочных файлах.
Я не слышал о производительности как о существенной разнице между структурами и классами, так что это ваш вызов.
Я погуглил эти страницы ниже, и они говорят, что не должно быть никакой разницы, когда речь заходит о производительности.
http://www.gamedev.net/topic/115725-is-a-struct-faster-than-a-class/
http://forums.codeguru.com/showthread.php?332571-Struct-vs-Class