Russian Qt Forum

Программирование => С/C++ => Тема начата: kuzulis от Января 27, 2009, 13:36



Название: Как лучше создать объект: структурой или классом?
Отправлено: kuzulis от Января 27, 2009, 13:36
Доброго времени суток!

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


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

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


Название: Re: Как лучше создать объект: структурой или к
Отправлено: Karl-Philipp от Января 27, 2009, 14:09
структура - это тот же класс, только по умолчанию у неё все члены - public.
Выходит, что и скорость доступа к ним одинакова, и памяти занимают одинаково :)
Раз уж используете С++ - однозначно выбирайте классы.


Название: Re: Как лучше создать объект: структурой или классом?
Отправлено: kuzulis от Января 27, 2009, 14:26
я тож такого мнения :)


Название: Re: Как лучше создать объект: структурой или к
Отправлено: panAlexey от Января 27, 2009, 15:24
Раз уж используете С++ - однозначно выбирайте классы.
почему?


Название: Re: Как лучше создать объект: структурой или к
Отправлено: Karl-Philipp от Января 27, 2009, 15:42
Раз уж используете С++ - однозначно выбирайте классы.
почему?

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

Ведь, чем больше в вашем классе членов public, тем большая вероятность, что вы наделаете ошибок в своём коде. То есть вы можете обращаться к открытым членам классов откуда угодно, а не с помощью методов данного класса, как это положено :)
Последнее относится к концепции инкапсуляции в С++.


Название: Re: Как лучше создать объект: структурой или классом?
Отправлено: panAlexey от Января 27, 2009, 18:34
а что в структуре написать private: or protected: нельзя?
не убедил.


Название: Re: Как лучше создать объект: структурой или классом?
Отправлено: kuzulis от Января 28, 2009, 08:36
хм... а что тогда выбрать?

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

:)


Название: Re: Как лучше создать объект: структурой или классом?
Отправлено: Kolobok от Февраля 21, 2009, 21:20
При использовании класса легко изменить логику присваивания новых значений членам класса. Например, встроить проверку на вхождение нового значения в определенный диапазон.