Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по программированию на C/С++

Автор: Metenik
Дата сообщения: 16.08.2004 12:59
--- Rat(mass) --- Вот и всё.
Автор: mihas83
Дата сообщения: 17.08.2004 07:20
nobody2

Цитата:
Или ты имел в виду описание (declaration) класса?

Так я и написал, а ты процитировал:
Цитата:
Переменные класса как раз определяют в h-файлах

Некоторые авторы называют их переменные-члены класса, поля данных...
Автор: nobody2
Дата сообщения: 17.08.2004 10:44
Переменная класса - звучит двусмысленно:

Код: TPoint p; // это тоже переменная класса
Автор: mihas83
Дата сообщения: 17.08.2004 17:25
nobody2

Цитата:
TPoint p; // это тоже переменная класса

Вполне ''законно''.
Внутри класса может быть инкапсулирован другой класс.
Автор: RedMac
Дата сообщения: 18.08.2004 16:47
почему работают по разному?

-------------------------------
cout << "Hello, world! \n";
printf("%s\n","By, world!");
--------------------------------

-------------------------------
cout << "Hello, world!" << endl;
printf("%s\n","By, world!");
--------------------------------
Автор: WiseAlex
Дата сообщения: 18.08.2004 16:56
RedMac

Цитата:
почему работают по разному?

у меня идентично - в чем разница, какой компилятор?
Автор: RedMac
Дата сообщения: 18.08.2004 17:07
WiseAlex
MS Studio VC++ 6.0
Автор: WiseAlex
Дата сообщения: 18.08.2004 17:47
RedMac
так в чем разница работы - напиши что программа выводит
Автор: RedMac
Дата сообщения: 18.08.2004 17:54
в первом случае

By, world!
Hello, world!

во втором случае

Hello, world!
By, world!

Автор: Karlsberg
Дата сообщения: 18.08.2004 18:04
RedMac
Классный примерчик. Может, endl на cout заодно и flush делает?
Автор: WiseAlex
Дата сообщения: 18.08.2004 19:12
Karlsberg

Цитата:
Классный примерчик. Может, endl на cout заодно и flush делает?

может быть и так или потоки не связаны нормально, похоже глюк именно VC6 - на 7.1 OK(проверил debug release)
Автор: vndovr
Дата сообщения: 19.08.2004 00:20
Ввод-вывод в С/С++ может смешиваться, но для того чтобы ввод-вывод с стиле С и ввод-вывод в стиле С++ имели общие буферы необходимо вызвать функцию:

std::ios_base::sync_with_stdio(true);

Это то что требуется по стандарту. Вопрос в реализации. Попробуй вставить вызов этой функции и скажи результат если не сложно.
Автор: RedMac
Дата сообщения: 19.08.2004 15:02
vndovr
Спасибо. Попробую, щаз под рукой нет. Но вот попробовал на 5 с++ билдере без

std::ios_base::sync_with_stdio(true);

выводит

Hello, world!
By, world!
Hello, world!
By, world!

Тогда просто непонятно кто в данном случае более строго выдерживает стандарт, если ты говоришь, что

std::ios_base::sync_with_stdio(true);

нужна по стандарту
Автор: f_serg
Дата сообщения: 19.08.2004 15:59
Karlsberg

Цитата:
Классный примерчик. Может, endl на cout заодно и flush делает?

Делает. И это фича, а не баг.
Из MSDN:

Цитата:
endl
Terminates a line and flushes the buffer.
...

Автор: mihas83
Дата сообщения: 19.08.2004 16:56
f_serg

Цитата:
Делает. И это фича, а не баг.
Из MSDN: endl
Terminates a line and flushes the buffer.

Совершенно верно.
Такие ''фокусы'' любят спрашивать на интервью.
Автор: Karlsberg
Дата сообщения: 19.08.2004 17:11
f_serg
Я и не говорил, что баг
Правда, и времени не нашел MSDN покопать
Автор: RedMac
Дата сообщения: 19.08.2004 17:14
mihas83
А ты часом не знаешь где можно нарыть примеры "вопросов из интервью"?
Автор: Karlsberg
Дата сообщения: 19.08.2004 17:20
mihas83

Цитата:
Такие ''фокусы'' любят спрашивать на интервью.

Пардон, за такие вопросы на интервью можно и канделябром в голову... У нас так низко еще не пали...
Автор: mihas83
Дата сообщения: 19.08.2004 17:28
Karlsberg

Цитата:
Пардон, за такие вопросы на интервью можно и канделябром в голову... У нас так низко еще не пали...

Не проходит...
Где у Вас?
Цитата:
А ты часом не знаешь где можно нарыть примеры "вопросов из интервью"?

Это дело штучное.
Можно было бы открыть отд. топик для обмена.
Автор: Karlsberg
Дата сообщения: 19.08.2004 18:39
mihas83

Цитата:
Где у Вас?

Можно не отвечать?
RedMac
Лучше поговорить с народом, который уже был в этой фирме на интервью, потому как у людей разные темы для вопросов. Но насколько мне обьясняли, проверяют не столько знания, сколько способность думать и находить решения.
Опять пардон, офтопик вышел...
Автор: vndovr
Дата сообщения: 19.08.2004 23:51
Стандарт на библиотеку ввода-вывода С++ - сейчас нашел ссылку:

Цитата:
Insert a new-line character in the stream and if the stream is a buffered stream then flushes (see flush) it.


век живи...
Автор: WiseAlex
Дата сообщения: 20.08.2004 09:42
vndovr
как я понял и endl и \n делают flush - так что это дибо
Цитата:
std::ios_base::sync_with_stdio(true);
не включенио по-умолчанию либо баг (впрочем в 6 поддержка stl довольно книвая)
Автор: vndovr
Дата сообщения: 20.08.2004 12:10
WiseAlex
Не совсем
\n не делает flush. std::endl делает.
Пример его определения (endl):

Код:
template<class charT, class traits>
inline basic_ostream<charT, traits>&
endl(basic_ostream<charT, traits>& os)
{
os.put( charT('\n') );
os.flush();
return os;
}
Автор: WiseAlex
Дата сообщения: 20.08.2004 15:41
vndovr
не совсем внимательно прочитал

Цитата:
sync_with_stdio() - по умолчанию не включен.

тогда почему в 7.1 нормально
кстати кто компилит intel компилятором в 6 - попробуйте что получится
Автор: Swappp
Дата сообщения: 20.08.2004 21:26
WiseAlex

Цитата:
впрочем в 6 поддержка stl довольно книвая

Для справки, cout, cin, endl и т.д. (#include <iostream>) никакого отношения к stl не имеет, это все должно быть в ANSI-C++ компиляторах (namespace std).
Автор: vndovr
Дата сообщения: 20.08.2004 23:30
WiseAlex
Скажем так: если sync_with_stdio() вызван то буферы будут синхронизированы. Если не вызван - то это просто ничего не значит - реализация целиком зависит от производителя библиотеки, т.е. что бы не произошло - все будет правильно.

Swappp
Сейчас уже не стоит проводить такую жесткую грань
И то и то - просто часть стандартной библиотеки - Stl тоже часть стандарта. К примеру: в CBuilder - 6-ки - с ней поставляются 2 библиотеки - Rogue Wave (включает в себя и Stl и I/O) и StlPort - которая тоже включает в себя и Stl и I/O.
Под VC тоже многие ставят StlPort - имеет смысл т.к. она портируется на массу платформ.

Немного оффтоп: есть еще и boost с++ library - очень полезная библиотека - некоторые вещи оттуда тоже перетекают в стандартную библиотеку.
Автор: Swappp
Дата сообщения: 21.08.2004 00:40
vndovr

Цитата:
Сейчас уже не стоит проводить такую жесткую грань

какая грань? STL это отдельная библиотека (Standard Template Library) в которую не входит iostream, так, что грань есть в стандарте.

Цитата:
Под VC тоже многие ставят StlPort - имеет смысл т.к. она портируется на массу платформ.

что то не понимаю... не надо ориентироваться на один компилятор. Я использую VS.NET C++ и gcc, ни каких stlport не ставлю, везде нормально компилируется с родной реализацией STL.
Автор: vndovr
Дата сообщения: 21.08.2004 15:36

Цитата:
STL это отдельная библиотека

Сейчас это часть стандартной библиотеки - поэтому не выделяю - для меня лично и Stl и IO просто часть языка. Если выделять просто по той причине что в стандарте ей отдельная глава посвящена то и, к примеру, про обработку исключений или шаблоны можно сказать то же самое.
Само собой - не настаиваю


Цитата:
что то не понимаю... не надо ориентироваться на один компилятор. Я использую VS.NET C++ и gcc, ни каких stlport не ставлю, везде нормально компилируется с родной реализацией STL.

Не совсем понял - а кто ориентируется? Я про версию VC вроде ничего не писал. А Stlport ставится для версий от 4.x до 6.x. Или ты хочешь сказать что в 4-й реализация стандартной библиотеки соответствует стандарту?
Для того чтобы не ориентироваться и ставят...
Автор: SXP
Дата сообщения: 21.08.2004 17:54
Плз помогите куском кода...

надо на С создать список всех видимых окон в винде..
Автор: Swappp
Дата сообщения: 21.08.2004 18:20
vndovr

Цитата:
для меня лично и Stl и IO просто часть языка.

но ведь разные части

Цитата:
А Stlport ставится для версий от 4.x до 6.x. Или ты хочешь сказать что в 4-й реализация стандартной библиотеки соответствует стандарту?

А, я значит не правильно понял. Просто с C++ builder дело не имел и предпочитаю компиляторы котрые сразу соответствуют стандарту.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

Предыдущая тема: не знаю как назвать тему :-)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.