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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как лучше создать объект: структурой или классом?  (Прочитано 5701 раз)
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« : Январь 27, 2009, 13:36 »

Доброго времени суток!

Например нужно создать некий элемент (тип данных)  - ТОЧКА, который имеет некоторые свойства:
- тип (type - байт)
- тэг (tag - строка)
- имя (name - строка)
- значение (value - или bool или int или float или string или datetime)
...


таких точек - будет оч много создаваться и удаляться...

так вот собственно вопрос: если я использую с++ , тотакой элемент "точка" - лучше создать как структуру или как класс?
интересует скорость доступа и работы потом с этим объектом + чтобы меньше занимало памяти!
Записан

ArchLinux x86_64 / Win10 64 bit
Karl-Philipp
Гость
« Ответ #1 : Январь 27, 2009, 14:09 »

структура - это тот же класс, только по умолчанию у неё все члены - public.
Выходит, что и скорость доступа к ним одинакова, и памяти занимают одинаково Улыбающийся
Раз уж используете С++ - однозначно выбирайте классы.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #2 : Январь 27, 2009, 14:26 »

я тож такого мнения Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #3 : Январь 27, 2009, 15:24 »

Раз уж используете С++ - однозначно выбирайте классы.
почему?
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Karl-Philipp
Гость
« Ответ #4 : Январь 27, 2009, 15:42 »

Раз уж используете С++ - однозначно выбирайте классы.
почему?

Потому что, например, сделав выбор в пользу классов, вы закрываете доступ к их членам извне класса, а что надо (из членов) - объявляете public.

Ведь, чем больше в вашем классе членов public, тем большая вероятность, что вы наделаете ошибок в своём коде. То есть вы можете обращаться к открытым членам классов откуда угодно, а не с помощью методов данного класса, как это положено Улыбающийся
Последнее относится к концепции инкапсуляции в С++.
« Последнее редактирование: Январь 27, 2009, 15:45 от terlan » Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #5 : Январь 27, 2009, 18:34 »

а что в структуре написать private: or protected: нельзя?
не убедил.
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #6 : Январь 28, 2009, 08:36 »

хм... а что тогда выбрать?

критерии:
1. скорость доступа к переменным в структуре/классе извне на чтение/запись
2. чтобы меньше выделялось памяти при создании структуры/класса
3. безопеснее

Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
Kolobok
Гость
« Ответ #7 : Февраль 21, 2009, 21:20 »

При использовании класса легко изменить логику присваивания новых значений членам класса. Например, встроить проверку на вхождение нового значения в определенный диапазон.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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