HELP!!! Kogda pishu tak kak nizhe to est oshibka " "this" - can only be used withina a member function" pomoymu operator stanovitsa "static function", hota mozhet ya oshibaus. ya rabotayu v Borland C++ 3.1, mozhno li eto ispravit ? Ya hochu stavit flag kogda object sozdayotsa dinamicheski.
Добрый день, sasha! Оператор new по считается статическим, а в статических функциях-членах ты не можешъ исполлъзоватъ указателъ this. Ответ отправлен: 03.01.2003, 10:16 Отправитель: Ramzes Отвечает wiggler
Приветствую Вас, sasha! Как раз в том и проблема, что оператор - статическая функция, и с ним не связано никакого объекта, поэтому this использовать нельзя. Да и сам посмотри - ты же присваиваешь значение переменной класса еще до его создания! И куда же, по твоему, компилятор должен положить злосчастную единичку :-)? Может написать так: void* CMyClass::operator new(size_t sz) { CMyClass* new_class = ::new CMyClass; new_class->flagnew = 1; return new_class; } А вообще, еще бывают конструкторы, так что перегружать оператор new наверно и не стоит.
Ответ отправлен: 03.01.2003, 12:46 Отправитель: wiggler
Вопрос № 480
Люди, подскажите функцию округления числа и функцию выделения остатка от деления.
Доброе время суток, Lexus! Округление... А ты попробуй преобразование типов, если тебе надо к целым округлять! При выводе - используй v:3:4, где v - это нужная переменная, 3 - это кол-во цифр до запятой, а 4 - после... А остаток - это операция %. То есть, если ты сделаешь так: int i, j; float f=12345; i=f/49.8; j=f%49.8; То у тебя в i будет целая часть деления, а в j - остаток.
Ответ отправлен: 03.01.2003, 23:19 Отправитель: baldr Отвечает Jadd
Доброе время суток, Lexus! Вообщем-то функции округления нету в природе для С++. Я писал свою. Вернее там есть округление до целого. Но если надо округлять до какого-то знака, тут надо самому писать. Алгоритм могу скинуть. Мыло знаешь. Ответ отправлен: 03.01.2003, 01:42 Отправитель: Jadd Отвечает kvINT
Здравствуйте, Lexus! Для целых чисел никаких функций не надо. X/Y - результат - целая часть частного. X%Y - результат - остаток от деления. Имеется функция modf из библиотеки math.h, сам ей не пользовался, посмотри в справке. Вроде бы возвращает целую и дробную части числа. Ответ отправлен: 03.01.2003, 02:21 Отправитель: kvINT Отвечает PL
Добрый день, Lexus! ceil() - округляет до целого сверху floor() - округляет до целого снизу а остаток от деления дает оператор % например 10%3 даст тебе единицу Вот и все
Ответ отправлен: 03.01.2003, 06:00 Отправитель: PL Отвечает barsik_
Доброе время суток, Lexus! ostatok 9%2=1 op1 % op2 = ostatok Ответ отправлен: 03.01.2003, 09:19 Отправитель: barsik_ Отвечает Ramzes
Здравствуйте, Lexus! Функция выделения остатка от деления - % int a = 5, b = 2; float c = a % b; функция округления - она тебе не нужна, так как если частное определено как int, то резулътат автоматичерски округляется. int c = a / b; Ответ отправлен: 03.01.2003, 10:21 Отправитель: Ramzes Отвечает wiggler
Добрый день, Lexus! a % b - остаток от деления a на b а целую часть можно выделить при помощи кастинга, например так: double a = 1.2; a = (double)(int)(a);
Ответ отправлен: 03.01.2003, 12:39 Отправитель: wiggler
Вопрос № 481
Ув.эксперты не подскажете как в Builder'е сделать линк на скажем Panel_самым простым способом.(e-mail,www) Спасибо.
Добрый день, Arthur Kucherenko ! Кидаешь куда тебе нужно Label, делаешь её синего цвета. Курсор над Label'ом делаешь csHand. В OnClick пишешь обработчик ShellExecute(.. "open", "http://www.microsoft.com/" ..) а мыло - mailto:no@mail.lv?subj=subj&body=body Ответ отправлен: 03.01.2003, 10:27 Отправитель: Eugene Отвечает Jadd
Здравствуйте, Arthur Kucherenko ! Куда линк? Непонятно что надо сделать. Ответ отправлен: 05.01.2003, 02:56 Отправитель: Jadd
Вопрос № 482
Эксперты, подскажите плиз что могло случиться. Я написал прогу с классом. Потом решил поменять кое-что в коде, но ей всё по барабану. Она работает как раньше. Даже если я удаляю сам код рассчёта из класса, прога считает и выдаёт ответ. У меня просто в голове не укладывается. Например, если у меня было z=a+b+c; А я потом удалил эту строку, прога продолжает считать эту z ивыдает ответ. Было у кого-нибудь что-либо подобное?
Доброе время суток, Lexus! Удали (перемести) объектный и exe файлы и перекомпилируй. Если и так уже это сделал - барабашка завелся, не иначе. Насчет подобного - перерисовал ярлык у одной папки, старой иконки уже нет (тоже был свой рисунок), текущим ярлыком в свойствах показывает новый, а на рабочем столе, хоть убей - старый. Откуда она его берет? Тоже, видимо, от барабашки. Ответ отправлен: 03.01.2003, 16:06 Отправитель: kvINT Отвечает baldr
Приветствую Вас, Lexus! Лучше бы ты прислал кусок кода... А то гадать трудно... Вероятно, ты поставил еще и где-то #include на этот класс? А может, просто эти a, b и c совпадают с какими-нибудь системными переменными? Трудно сказать...
Ответ отправлен: 03.01.2003, 23:18 Отправитель: baldr Отвечает barsik_
Приветствую Вас, Lexus! Perecompiliruy vse fayli vseh classov proekta. Dolzhen bit punkt v menu "rebuild all". Ответ отправлен: 03.01.2003, 11:28 Отправитель: barsik_ Отвечает Dzik
Доброе время суток, Lexus! Скажи для начала какой компилятор. Скорее всего прога просто не ребилдится.
Ответ отправлен: 03.01.2003, 12:17 Отправитель: Dzik Отвечает Ramzes
Здравствуйте, Lexus! Весъма вероятно что она у тебя заново не компилируется. Ззакрой редактор и открой его заново. Ответ отправлен: 03.01.2003, 13:08 Отправитель: Ramzes Отвечает Zloy
Добрый день, Lexus! возможно просто заново не скомпилировал проект. Попробуй удалить старый exe и воздать его заново.
Ответ отправлен: 03.01.2003, 19:45 Отправитель: Zloy Отвечает Jadd
Добрый день, Lexus! Сделай ребилд проекту илил удали объектные файлы из диры и собери проект снова...билдер мог заглючить Ответ отправлен: 04.01.2003, 00:50 Отправитель: Jadd
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.