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

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


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

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 191
от 11.09.2005, 15:18

Администратор:Калашников О.А.
В рассылке:Подписчиков: 192, Экспертов: 31
В номере:Вопросов: 1, Ответов: 3


Вопрос № 25926: Здравствуйте, эксперты Есть вопрос. У меня в учебнике по С++ написано, шо нижеприведенные конструкции должны работать идентично, а у меня одна компилится (MS VC++ 6) , а другая дает 3 ошибки в одной строке. Поясните вкратце, в чем проблема? Мнн в...

Вопрос № 25.926
Здравствуйте, эксперты
Есть вопрос. У меня в учебнике по С++ написано, шо нижеприведенные конструкции должны работать идентично, а у меня одна компилится (MS VC++ 6) , а другая дает 3 ошибки в одной строке. Поясните вкратце, в чем проблема? Мнн все равно что юзать, но аж самому интересно.

Приложение:

Отправлен: 06.09.2005, 14:27
Вопрос задал: ANDx (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jadd
Здравствуйте, ANDx!
Ну правильно ошибку дает, нельзя так инициализировать переменную. Это же Си, а не джава. Можно написать так, как в приложении, но тогда речи о динамическом выделении памяти под массив из 8 элементов нужного типа речи и быть не может. Тогда класс преобразится к виду (См. приложение).

Приложение:

---------
Если в сердце дверь закрыта, нужно в печень постучаться

Ответ отправил: Jadd (статус: Практикант)
Отправлен: 06.09.2005, 15:14
Оценка за ответ: 5
Комментарий оценки:
Сенкс

Отвечает: Romodos
Здравствуйте, ANDx!
Ну к правильно, у тея видимо не находит конструктор класса, да и
строка
OCTreeNode *ChildNodes = new OCTreeNode[8];
неверна. Надо или после OCTreeNode ставить ;
А уже потом объявлять ChildNodes = new OCTreeNode[8];
или как в первом примере. Вообщем не гоморойся, Андрей, а используй первый пример.
---------
FAQ me off!
Ответ отправил: Romodos (статус: 5-ый класс)
Отправлен: 06.09.2005, 17:54
Оценка за ответ: 5
Комментарий оценки:
Тоже спасибо

Отвечает: Raptor1
Здравствуйте, ANDx!
OCTreeNode *ChildNodes = new OCTreeNode[8];
это строчка кода которая должна где то выполнится, поэтому поместить ее можно в функцию класса, но не в тело класса
лучше всего делать так
// это конструктор
OCTreeNode() : ChildNodes (new OCTreeNode[8]) // надо освободить в деструкторе
{

}

// это переменная где то в теле класса
OCTreeNode *ChildNodes
Ответ отправил: Raptor1 (статус: 6-ой класс)
Отправлен: 07.09.2005, 00:16


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться
Вспомнить пароль

В избранное