Здравствуйте. Хочу спросить Вас по поводу ипользования в С++ в классах inline-функций. Можно ли исп-ть inline в любом методе класса, а если можно не во всех методах, то в каких? У меня компилятор BorlandC++5.02 - он пишет при определении некоторых inline-функций, что их нельзя использовать(например если в функцию поместить усл.оператор или цикл).
Здравствуйте, Hummer! Ключевое слово inline компилятор расценивает как предложение или пожелание. Он сам решает какие функции (не только методы классов) он может сделать inline. В действительности, далеко не все функции в принципе могут быть inline. Например, не могут быть inline: - виртуально вызываемые виртуальные функции (методы); - рекурсивные функции; - функции, к которым обращаются через указатель, и т.д. В принципе иногда компилятор может сделать две реализации функции: где сможет - inline, где нет - обычную. Можно вместо использовать макросы, но у них есть серьезные ограничения. Попробуйте Visual C++ 6.0, возможно у него получится. Ответ отправлен: 10.03.2004, 18:48 Отправитель: mr2dark Отвечает vitya
Приветствую Вас, Hummer! это от компилятора. Хороший компилятор разрешает все делать inline - ми, просто некоторые потом он оставит, как функции. За дальнейшим есть статья na www.cuj.com Ответ отправлен: 11.03.2004, 09:41 Отправитель: vitya
Вопрос № 1490
Доброго времени суток. Какие функции лучше делать методами класса, а какие friend. (например операторы: >>,<<,[],=,==,+,+= и т.д.) Спасибо.
Здравствуйте, Хром! Методами класса лучше делать функции, характерные конкретно для этого класса, а общие для нескольких классов, универсальные - friend, а еще лучше - выделить их в отдельный класс. Ответ отправлен: 10.03.2004, 19:33 Отправитель: lipa75 Отвечает vitya
Приветствую Вас, Хром! операторы op=, [] всегда члены операторы new, delete всегда статические члены операторы + - / и т.д обычно друзья >> << для потоков тоже друзья, для перегрузки другими типами смотря как получится. Ответ отправлен: 11.03.2004, 09:39 Отправитель: vitya
Вопрос № 1491
Здравствуйте. Если не подключен файл conio.h, то подключить его: // у меня так не работает, хотя мой препод говорит, что должно раб-ть: #ifndef CONIO_H #define CONIO_H #endif // так ОК: #ifndef CONIO_H #include #endif Как все-таки правильно?
Приветствую Вас, ЗОЖ! Наиболее распространённый вариант в приложении.
Приложение: Ответ отправлен: 10.03.2004, 20:25 Отправитель: Bobs
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.