Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Rud-Man
0 / 0 / 0
Регистрация: 08.04.2011
Сообщений: 6
1

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

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

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

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

С чего стоит начать?
В этом деле новичек, самый что ни на есть... Хотелось бы знать с чего стоит...

Как осуществляется преобразование типов (для чего)?
Как осуществляется преобразование типов (для чего)? int *p=(int*)str; //...

Изучение C++: с чего стоит начать?
Здравствуйте. Недавно начал изучать PHP, с ним возникли проблемы, а именно с...

Для чего в приведенном коде используется преобразование типов
if (choose==7){ printf ("Проверим составное или простое число при k=18\n"); ...

С чего стоит начать обучение языка С++?
Здравствуйте. С чего стоит начать обучение языка С++. Много об этом читал ,...

4
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
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;
}
По мне так, со структурами красивее и нагляднее. Но все-таки нужно различать, когда она нужна, а когда нет.
1
sav241
5 / 5 / 0
Регистрация: 04.04.2011
Сообщений: 37
08.04.2011, 18:07 3
не пойму какие ты ресурсы имеешь в виду , но решая данную задачу сразу бы создал класс point, а для операций с точками начал бы переопределять оператора +, -
создал бы сам операцию скалярного умножения *.
0
Rud-Man
0 / 0 / 0
Регистрация: 08.04.2011
Сообщений: 6
08.04.2011, 18:18  [ТС] 4
Цитата Сообщение от sav241 Посмотреть сообщение
какие ты ресурсы имеешь в виду
ну всмысле компилятор может как только увидет слово struct, выделит для неё что-нить...
(вопрос снят)) всем спасибо))
0
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
08.04.2011, 18:37 5
Rud-Man, следует различать описание структуры и создание её экземпляра. Когда вы описываете структуру, вы просто сообщаете компилятору, сколько памяти нужно будет выделить и какие смещения от начала использовать при доступе к полям. Никакая память при объявлении структуры не выделяется. Память выделяется только при создании экземпляра структуры, и, если не учитывать выравнивание, то её потребуется столько же, сколько и на простое объявление некоторого количества переменных встроенных типов, а если его и учитывать, всё равно разница несущественна.
1
08.04.2011, 18:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2011, 18:37

Использование шаблона типов
Прочитал про шаблоны типов, интересный и полезный инструмент, но есть несколько...

Использование разных типов указателей
Здравствуйте! Программа должна засерать переменную n, а вместо этого она...

Для чего нужен C++ стоит ли с него начинать изучения языков програмирования
Для чего нужен C++ стоит ли с него начинать изучения языков програмирования и...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru