- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
class fileOutStream : public ostream
{
public:
/* ... */
virtual inline int printf( const char * fpFormat, ... )
{
/* ... */
}
/* ... */
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1003
class fileOutStream : public ostream
{
public:
/* ... */
virtual inline int printf( const char * fpFormat, ... )
{
/* ... */
}
/* ... */
}
virtual inline метод.
а вот printf действительно нужен? насколько он безопасно реализован?
По элипсису видно насколько он безопасно реализован. Но думается мне, что всё ещё хуже.
ну то, что в аргументы обязательно придется передавать POD, даже не обсуждалось
просто раз это какбе "fileOut", то, надеюсь, внутри использован vfprintf в файл, а не vsprintf в промежуточный буфер, размера которого никогда не хватит
А велосипедист реализовал точно такой же велосипед и добавил новую наклейку.
>/* ... */
Велосипедист хоть догадался заюзать стандартный printf или всё по честному с нуля?
Только потоки, только хардкор! Это ж плюсы.
тут не используется стандартная функция, а пишется кривая обертка над функцией
видимо это имел ввиду гг
Каким образом вообще можно делать такие далеко идущие выводы из одной декларации?
"Виртульность" функции влияет лишь на "виртуальные" ее вызовы, т.е. на вызовы, которые разрешаются динамически, с учетом динамического типа объекта. "Инлайновость" функции влияет лишь на "невиртуальные" ее вызовы, т.е. вызовы которые разрешаются статически, с учетом статического типа объекта. В результате эти два свойства - виртаульность и инлайновость - никак друг с другом не пересекаются и никак друг другу не мешают.