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

Сообщение Re[4]: покритикуйте метод компиляции от 19.11.2022 21:52

Изменено 19.11.2022 21:53 maks1180

Re[4]: покритикуйте метод компиляции
Z>Ну так можно писать и в случае разбития на несколько файлов.
Z>Реализованные прямо в объявлении класса члены-функции по умолчанию считаются
Z>"inline" и можно cделать "#include" без проблем в несколько единиц трансляции без проблем,
Z>накаких ошибок линковки не будет и все будет работать правильно.
Я описал в топике "будет много имплементаций одного класса (в каждом .o файле, где он используется). И могут быть проблемы: по разному реализовано может быть (в зависимости от макросов и опций компилятора), неопределённость при линковке — неизвестно какую реализацию возмёт линковщик. Поэтому я считаю, что опастно так делать при традиционном способе компиляции"

Z>Правда субъективно такой код читать сложнее, нельзя охватить разом интерфейс который предоставляет класс, так как интерфейс прячется за реализацией.

Это да, иногда труднее, но иногда проще. Если нужно видеть реализацию, смотришь в cpp файл и не понимаешь static или нет функция, а так же не видишь параметры по умолчанию. Приходиться бегать по двух файлам.

Зато править такой код намного проще, поэтому все современные языки в таком стиле — Java, C#, php и т.д.
А посмотреть интерфейс удобно через IDE.
Re[4]: покритикуйте метод компиляции
Z>Ну так можно писать и в случае разбития на несколько файлов.
Z>Реализованные прямо в объявлении класса члены-функции по умолчанию считаются
Z>"inline" и можно cделать "#include" без проблем в несколько единиц трансляции без проблем,
Z>накаких ошибок линковки не будет и все будет работать правильно.
Я описал в топике "будет много имплементаций одного класса (в каждом .o файле, где он используется). И могут быть проблемы: по разному реализовано может быть (в зависимости от макросов и опций компилятора), неопределённость при линковке — неизвестно какую реализацию возмёт линковщик. Поэтому я считаю, что опастно так делать при традиционном способе компиляции"

Z>Правда субъективно такой код читать сложнее, нельзя охватить разом интерфейс который предоставляет класс, так как интерфейс прячется за реализацией.

Это да, иногда труднее, но иногда проще. Если нужно видеть реализацию, смотришь в cpp файл и не понимаешь static или нет функция, а так же не видишь параметры по умолчанию. Приходиться бегать по двум файлам.

Зато править такой код намного проще, поэтому все современные языки в таком стиле — Java, C#, php и т.д.
А посмотреть интерфейс удобно через IDE.