crossplatform.ru

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

4 страниц V  « < 2 3 4  
Ответить в данную темуНачать новую тему
> Главное меню
Don
  опции профиля:
сообщение 11.5.2008, 23:20
Сообщение #31


Студент
*

Группа: Новичок
Сообщений: 59
Регистрация: 19.3.2008
Пользователь №: 127

Спасибо сказали: 0 раз(а)




Репутация:   0  


Скажите, вот если я в заголовочном файле mainwndow.h объявил объект Life *board А потом в mainwindow.срр в конструкторе и других функциях вроде как заново объявляю его
Life *board = new Life;
то получается создаются совсем разные объекты?
И почему если объявить объект тока в заголовочном файле и не объявлять ещё в конструкторе и функциях, и обращатся с ним как с созданным объектом, то ничего не рабатает?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 12.5.2008, 7:48
Сообщение #32


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Объявлять надо в одном месте, в хидере:
Life *board; // объявил
,
а в реализации, например в конструкторе:
board = new Life; // создал обект тапа Life и связал его с указателем
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 12.5.2008, 7:49
Сообщение #33


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Немного терминологии:
Life *board1;                 // Объявление
board1 = new Life;         // Определение
Life *board2 = new Life; // Инициализация

Насчет разных указателей на объект:
Life *board=0;
board = new Life(); // для указателя board выделена память, и он указывает на определенный участок ее.
board = new Life(); // снова для указателя board выделена память, и он указывает на другой участок памяти, чем указывал строкой выше.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 12.5.2008, 7:54
Сообщение #34


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


Для локальных переменных объявление и определение совпадают. Кроме того, они часто совмещаются с инициализацией.

Не совпадают объявление и определение для внешних глобальных переменных, статических данных членов, неинлайновых функций и экспортных шаблонов (вроде ничего не забыл).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Don
  опции профиля:
сообщение 12.5.2008, 18:00
Сообщение #35


Студент
*

Группа: Новичок
Сообщений: 59
Регистрация: 19.3.2008
Пользователь №: 127

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 12.5.2008, 7:49) *
Немного терминологии:
Life *board1;                 // Объявление
board1 = new Life;         // Определение
Life *board2 = new Life; // Инициализация

Во, спасибо! Я нашёл ошибку. Нада было объект моего класса не инициализировать, а определять.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 12.5.2008, 18:58
Сообщение #36


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(Don @ 12.5.2008, 19:00) *
Во, спасибо! Я нашёл ошибку. Нада было объект моего класса не инициализировать, а определять.
Главное, чтобы ты запомнил, и больше не делал эту ошибку. ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V  « < 2 3 4
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.4.2024, 4:30