crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Главное меню
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
ViGOur Дата 12.5.2008, 18:58
 
Цитата(Don @ 12.5.2008, 19:00) *
Во, спасибо! Я нашёл ошибку. Нада было объект моего класса не инициализировать, а определять.
Главное, чтобы ты запомнил, и больше не делал эту ошибку. ;)
Don Дата 12.5.2008, 18:00
 
Цитата(ViGOur @ 12.5.2008, 7:49) *
Немного терминологии:
Life *board1;                 // Объявление
board1 = new Life;         // Определение
Life *board2 = new Life; // Инициализация

Во, спасибо! Я нашёл ошибку. Нада было объект моего класса не инициализировать, а определять.
Tonal Дата 12.5.2008, 7:54
  Для локальных переменных объявление и определение совпадают. Кроме того, они часто совмещаются с инициализацией.

Не совпадают объявление и определение для внешних глобальных переменных, статических данных членов, неинлайновых функций и экспортных шаблонов (вроде ничего не забыл).
ViGOur Дата 12.5.2008, 7:49
  Немного терминологии:
Life *board1;                 // Объявление
board1 = new Life;         // Определение
Life *board2 = new Life; // Инициализация

Насчет разных указателей на объект:
Life *board=0;
board = new Life(); // для указателя board выделена память, и он указывает на определенный участок ее.
board = new Life(); // снова для указателя board выделена память, и он указывает на другой участок памяти, чем указывал строкой выше.
Litkevich Yuriy Дата 12.5.2008, 7:48
  Объявлять надо в одном месте, в хидере:
Life *board; // объявил
,
а в реализации, например в конструкторе:
board = new Life; // создал обект тапа Life и связал его с указателем
Don Дата 11.5.2008, 23:20
  Скажите, вот если я в заголовочном файле mainwndow.h объявил объект Life *board А потом в mainwindow.срр в конструкторе и других функциях вроде как заново объявляю его
Life *board = new Life;
то получается создаются совсем разные объекты?
И почему если объявить объект тока в заголовочном файле и не объявлять ещё в конструкторе и функциях, и обращатся с ним как с созданным объектом, то ничего не рабатает?
ViGOur Дата 11.5.2008, 22:25
  Нужно поставить точку останова, на твоей проблемной строчке. Делается это так, поставь курсор на той строчке, что ты хочешь отладить и нажми кнопку F9, после чего с лева от нее должен появится красный кружечек, который называется брэкпоинт.
Затем нажимаешь кнопку F5, после чего запускается твое приложение, и делаешь в нем то, чтобы выполнился твой проблемный участок кода, когда это произойдет студия бросит тебя на установденный брэйкопоинт. Далее, чтобы пошагово ходить нужно работать клавишами F10 (шаг далее) или F11 (шаг в функцию)...

Далее объяснять не буду, так как назначение разного рода окошек описывается в статье...


p.s. я тебе выше добавил еще статей. :)
Don Дата 11.5.2008, 22:17
 
Цитата(ViGOur @ 11.5.2008, 22:12) *
Вот можно почитать хорошую статью по этому поводу: Возможности встроенного отладчика Visual C++

Спасибо, конечно! Я прочту. Но можно в кратце, в двух словах. Как его запустить? И где мне там глянуть валиден ли мой board или нет? Просто нужно поскорей
ViGOur Дата 11.5.2008, 22:12
  Вот можно почитать хорошии статьи по этому поводу:
Отладка в среде Visual C++
Don Дата 11.5.2008, 22:09
  А смотреть в отладчике как? Это компилировать прогу построчно что-ли? Как им вобще пользоваться?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 3:12