Russian Qt Forum
Май 30, 2024, 12:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Проблема инициализации класса внутри структуры  (Прочитано 6806 раз)
alik
Гость
« Ответ #15 : Июнь 09, 2015, 14:38 »

Нивапрос
Код:
TStructureTerrain struc;
struc.Matrix.~TSmallintSpaceXY(); // удаляем УЖЕ СОЗДАННЫЙ матрикс
new (&struc.Matrix) TSmallintSpaceXY(10,10); // создаем новый на его месте

А можно вот так проверять создан ли класс или нет:

bool LoadTerrain_SRTM(QString FileName, TStructureTerrain *struc)
{
....
if ((&struc != NULL) & (&struc.Matrix != NULL)) struc.Matrix.~TSmallintSpaceXY(); // удаляем УЖЕ СОЗДАННЫЙ матрикс
new (&struc.Matrix) TSmallintSpaceXY(10,10); // создаем новый на его месте


Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #16 : Июнь 09, 2015, 17:17 »

Нет
Записан
Hrundel
Гость
« Ответ #17 : Июнь 09, 2015, 22:27 »

Внутри структур можно использовать функции - делайте все что вам нужно через функции.
Записан
alik
Гость
« Ответ #18 : Июнь 10, 2015, 12:58 »

Ок, большое спасибо всем !
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #19 : Июнь 10, 2015, 14:22 »

Имеется структура:
struct TStructureTerrain {
    TGeoPnt GeoPnt_LowerLeft;
    TGeoPnt GeoPnt_SW;
    TGeoPnt GeoPnt_NW;
    TGeoPnt GeoPnt_NE;
    TGeoPnt GeoPnt_SE;
    TSmallintSpaceXY Matrix;
    };
Как давать имена классам и переменным - совсем не мелочь. Стремитесь чтобы каждая часть имени была с какой-то полезной смысловой нагрузкой, напр
Код
C++ (Qt)
struct TTerrain {
   TGeoPnt m_LowerLeft;
   TGeoPnt m_SW;
   TGeoPnt m_NW;
   TGeoPnt m_NE;
   TGeoPnt m_SE;
   TSmallMatrix m_Matrix;
};
 
Префикс для членов (здесь m_) - ну пишут всяко, и вообще без него, но большинство все-таки члены выделяет, резоны есть
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.062 секунд. Запросов: 19.