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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Rud-Man
0 / 0 / 0
Регистрация: 08.04.2011
Сообщений: 6
#1

Чего стоит использование абстракции типов данных? - C++

08.04.2011, 17:56. Просмотров 552. Ответов 4
Метки нет (Все метки)

Здравствуйте!
Я ещё зелёный в этом деле, только учусь (на первом курсе), и после изучения структур и классов я их использую везде!
Они мне очень понравились, с ними удобно, и даже Макконнел рекомендует АТД, но вот при решении простой задачки возник вопрос:
Требуется работать с точками, координатами...
я сразу же создал
C++
1
2
3
4
struct dot{
int x;
int y;
};
и далее нужо делать определённые действия с координатами.
А мой однокурсник просто объявил две переменные x и y и работал с ними...

Так вот в чём суть вопроса: Уходят ли на класс или структуру какие-то ресурсы, которых можно и не занимать, если задачу можно решить и без них(сруктур)??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2011, 17:56     Чего стоит использование абстракции типов данных?
Посмотрите здесь:

С чего стоит начать? C++
C++ Использование разных типов указателей
Как быть, если в шаблоне классе предполагается использование ОДИНАКОВЫХ типов? C++
C++ Как осуществляется преобразование типов (для чего)?
C++ С чего стоит начать обучение языка С++?
Создание и использование dll- Для чего dllimport? C++
C++ Изучение C++: с чего стоит начать?
Использование шаблона типов C++
Неопределенность в абстракции C++
C++ Для чего нужен C++ стоит ли с него начинать изучения языков програмирования
Для чего в приведенном коде используется преобразование типов C++
C++ Использование нужного указателя без динамического привидения типов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1466 / 833 / 69
Регистрация: 26.03.2010
Сообщений: 2,839
08.04.2011, 18:02     Чего стоит использование абстракции типов данных? #2
Убедитесь, что доп. ресурсов на структуру не уходит:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
struct dot {
    int x;
    int y;
};
 
int main (void)
{
    std::cout << "Sizeof structure: " << sizeof (dot) << std::endl;
    std::cout << "Sizeof 2 int: " << sizeof (int) * 2 << std::endl;
 
    return 0;
}
По мне так, со структурами красивее и нагляднее. Но все-таки нужно различать, когда она нужна, а когда нет.
sav241
5 / 5 / 0
Регистрация: 04.04.2011
Сообщений: 37
08.04.2011, 18:07     Чего стоит использование абстракции типов данных? #3
не пойму какие ты ресурсы имеешь в виду , но решая данную задачу сразу бы создал класс point, а для операций с точками начал бы переопределять оператора +, -
создал бы сам операцию скалярного умножения *.
Rud-Man
0 / 0 / 0
Регистрация: 08.04.2011
Сообщений: 6
08.04.2011, 18:18  [ТС]     Чего стоит использование абстракции типов данных? #4
Цитата Сообщение от sav241 Посмотреть сообщение
какие ты ресурсы имеешь в виду
ну всмысле компилятор может как только увидет слово struct, выделит для неё что-нить...
(вопрос снят)) всем спасибо))
silent_1991
Эксперт С++
4956 / 3032 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.04.2011, 18:37     Чего стоит использование абстракции типов данных? #5
Rud-Man, следует различать описание структуры и создание её экземпляра. Когда вы описываете структуру, вы просто сообщаете компилятору, сколько памяти нужно будет выделить и какие смещения от начала использовать при доступе к полям. Никакая память при объявлении структуры не выделяется. Память выделяется только при создании экземпляра структуры, и, если не учитывать выравнивание, то её потребуется столько же, сколько и на простое объявление некоторого количества переменных встроенных типов, а если его и учитывать, всё равно разница несущественна.
Yandex
Объявления
08.04.2011, 18:37     Чего стоит использование абстракции типов данных?
Ответ Создать тему
Опции темы

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