Форум программистов, компьютерный форум CyberForum.ru

Мнение. Что лучше Структуры или Классы? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Electroflower
Форумчанка
 Аватар для Electroflower
289 / 82 / 9
Регистрация: 05.01.2012
Сообщений: 424
Записей в блоге: 1
11.01.2012, 08:27     Мнение. Что лучше Структуры или Классы? #1
Ребят, вопрос такой у меня возник. При решении одной и той же задачи я использовала Структуры и классы, но вот что из них лучше и почему-так и не поняла
Что из этого лучше использовать и почему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2012, 08:27     Мнение. Что лучше Структуры или Классы?
Посмотрите здесь:

Исследование структуры FILE или: что вообще можно выудить из этой структуры, указатель на которую мы получаем при открытии файла? C++
Везде говорится, что структуры и классы отличаются только типом доступа к членам по умолчанию C++
C++ Что лучше Pascal или C++
Что лучше ссылка или указатель? C++
C++ Что лучше С++ 6 или С++ 2010 Что выбрать, мое мнение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
11.01.2012, 08:33     Мнение. Что лучше Структуры или Классы? #2
В С++ структура и класс примерно одно и то же.

Только у структуры поля по-умолчанию public, а у класса private. Естественно, явное задание private: и public: решает вопрос.
Ну и логически, у структуры обычно подразумеваются доступные (public) поля, тогда как у класса доступ к полям осуществляется через методы.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct Point {
  int x, y;  // public, прямой доступ к полю
  Point() : x(0), y(0) {}  // public
  Point(int x_, int y_) : x(x_), y(y_) {}  // public
};
 
class TenPoints {
  Point points[10]; // private
 public:
  B() {} // public
  const Point &get(size_t n) const { return points[n]; } // доступ к полю через метод
  void set(size_t n, const Point &point) { return points[n] = point; } // доступ к полю через метод
};
Можно использовать тот, что логичней или чья запись короче.
Electroflower
Форумчанка
 Аватар для Electroflower
289 / 82 / 9
Регистрация: 05.01.2012
Сообщений: 424
Записей в блоге: 1
11.01.2012, 08:43  [ТС]     Мнение. Что лучше Структуры или Классы? #3
Спасибо
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
11.01.2012, 08:43     Мнение. Что лучше Структуры или Классы? #4
Ошибся в имени конструктора, должен быть не B() {} , а TenPoints() {}.
Electroflower
Форумчанка
 Аватар для Electroflower
289 / 82 / 9
Регистрация: 05.01.2012
Сообщений: 424
Записей в блоге: 1
11.01.2012, 09:53  [ТС]     Мнение. Что лучше Структуры или Классы? #5
Всем спасибо, все учту
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
11.01.2012, 10:04     Мнение. Что лучше Структуры или Классы? #6
В С++ структуры поддерживают все плюшки классов.

Код, а-ля STL -- нода контейнера на базе связного списка.
Виртуальные функции, наследование и т.д.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct NodeBase {
  NodeBase *prev;
  NodeBase *next;
  NodeBase(NodeBase *prev_, NodeBase *next_) : prev(prev_), next(next_) {
    next->prev = prev->next = this;
  }
  NodeBase() : prev(this), next(this) {}
  virtual ~NodeBase() {
    next->prev = prev;
    prev->next = next;
  }
};
 
template <class T>
struct NodeType : public NodeBase {
  T data;
  NodeType(NodeBase *prev_, NodeBase *next_, const T &data_)
   : NodeBase(prev_, next_), data(data_) {}
};
Технически, разница только в области видимости по-умолчанию.
Mr.X
Эксперт С++
 Аватар для Mr.X
2796 / 1572 / 246
Регистрация: 03.05.2010
Сообщений: 3,647
11.01.2012, 11:37     Мнение. Что лучше Структуры или Классы? #7
Структуры в основном применяются для организации типа данных, аналогичного записи в Паскале, а классы – для ООП.
Но иногда и вместо класса удобнее использовать структуру, например при написании функтора.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
11.01.2012, 12:56     Мнение. Что лучше Структуры или Классы? #8
Electroflower, как уже сказали разницы никакой почти нет. Но с точки зрения идеологии правильно использовать структуру, как простой набор данных. А класс это уже объект с собственным поведением.
Цитата Сообщение от Mr.X Посмотреть сообщение
Но иногда и вместо класса удобнее использовать структуру, например при написании функтора.
Так как запись структурой банально короче, чем классом. Для функторов это считается общепринятым, в принципе
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2012, 22:57     Мнение. Что лучше Структуры или Классы?
Еще ссылки по теме:

C++ Что лучше - malloc или new?
C++ Что лучше: динамические массивы, векторы, списки, map контейнеры или что-то ещё?
Что лучше c++ или c#? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Electroflower
Форумчанка
 Аватар для Electroflower
289 / 82 / 9
Регистрация: 05.01.2012
Сообщений: 424
Записей в блоге: 1
11.01.2012, 22:57  [ТС]     Мнение. Что лучше Структуры или Классы? #9
Спасииибоо
Yandex
Объявления
11.01.2012, 22:57     Мнение. Что лучше Структуры или Классы?
Ответ Создать тему
Опции темы

Текущее время: 20:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru