Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 164
от 06.01.2003, 12:40

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 501
Отправлено ответов: 1091
Активность: 217.7 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Ramzes
Статус: Начальный
Общий рейтинг: 118.75
[Подробней >>]
wiggler
Статус: Начальный
Общий рейтинг: 101.65
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 113.8
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
 
Jadd
Статус: Профессиональный
Общий рейтинг: 144.85
[Подробней >>]
kvINT
Статус: Профессиональный
Общий рейтинг: 105.96
Телефон: (34316)2-31-45
[Подробней >>]
PL
Статус: Доверительный
Общий рейтинг: 115.34
[Подробней >>]
 
barsik_
Статус: Опытный
Общий рейтинг: 147.2
Телефон: 058-840271
[Подробней >>]
Eugene
Статус: Опытный
Общий рейтинг: 107.87
URL: мощный файловый архив
[Подробней >>]
Dzik
Статус: Профессиональный
Общий рейтинг: 114.6
URL: Разработка игрушек
[Подробней >>]
 
Zloy
Статус: Опытный
Общий рейтинг: 107.74
URL: Паскаль, просто Паскаль ...
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 478. HELP!!! Kogda pishu tak kak nizhe to est oshibka " "this" - can only be used withina ... (ответов: 2)
Вопрос № 480. Люди, подскажите функцию округления числа и функцию выделения остатка от деления.... (ответов: 7)
Вопрос № 481. Ув.эксперты не подскажете как в Builder'е сделать линк на скажем Panel_самым простым способом.(e-mai... (ответов: 2)
Вопрос № 482. Эксперты, подскажите плиз что могло случиться. Я написал прогу с классом. Потом решил поменять кое-... (ответов: 7)

Вопросов: 4, ответов: 18


 Вопрос № 478

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.


Приложение:


Вопрос отправлен: 02.01.2003, 14:50
Отправитель: sasha (felistovichs@rambler.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Ramzes

Добрый день, 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

Люди, подскажите функцию округления числа и функцию выделения остатка от деления.



Вопрос отправлен: 03.01.2003, 00:40
Отправитель: Lexus

[Следующий вопрос >>] [Список вопросов]

Отвечает baldr

Доброе время суток, 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)
Спасибо.



Вопрос отправлен: 03.01.2003, 05:30
Отправитель: Arthur Kucherenko

[Следующий вопрос >>] [Список вопросов]

Отвечает Eugene

Добрый день, 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 ивыдает ответ. Было у кого-нибудь что-либо подобное?



Вопрос отправлен: 03.01.2003, 11:17
Отправитель: Lexus

[Следующий вопрос >>] [Список вопросов]

Отвечает kvINT

Доброе время суток, 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.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (37)
C / C++ (29)
Perl (4)
Delphi (21)
Pascal (23)
Basic / VBA (11)
Java / JavaScript (7)
PHP (3)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (34)
Windows NT/2000/XP (25)
"Железо" (31)
Поиск информации (16)
Администратору
Windows NT/2000/XP (10)
Linux / Unix (15)
Юристу
Гражданское право (7)
Семейное право (4)
Трудовое право (4)
КоАП (3)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное