Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Santer.Net
15 / 15 / 1
Регистрация: 18.11.2010
Сообщений: 122
#1

Struct VS Class - C++

02.07.2012, 23:59. Просмотров 765. Ответов 2
Метки нет (Все метки)

Здравствуйте.
Я прочел интересную статью http://www.rsdn.ru/article/cpp/ObjectsAndPointers.xml#EVPAC по использованию памяти для различных конструкций языка. Но хотел узнать, когда мы создаем динамически структуру, она помещается в стек или в кучу. И почему при реализации структур данных (типа связные списки) для описания узла используют структуры,а не классы (даже когда код на с++). Я бы хотел узнать по производительности какие будут различия.
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2012, 23:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Struct VS Class (C++):

Class vs Struct - C++
класс или структура что создаётся быстрее? перегружаются ли конструкторы структуры? если существуют (не уверен) сколько занимают в...

Перевод с Struct в Class - C++
Помогите пожалуйста в данной программе из структур сделать классы Вот код: #include <iostream> #include <vector> #include...

Перевод с Struct в Class - C++
Помогите пожалуйста в данной программе из структур сделать классы Вот код: #include <iostream> using namespace std; struct...

Чем struct отличается от class? - C++
Чем отличаются эти ключевые слова кроме public/private по умолчанию?

Сравнительная характеристика struct и class - C++
Всем доброго дня! Решил сравнить работу структур с классами. В функцию func(Trainee Vania) передаю обьект структуры Trainee как...

std::bind1st: is not a class, struct, or union type - C++
Добрый день, пытаюсь найти элемент в списки указателей на объекты классачерез предикат. Вот упрощенный пример: #include <algorithm> ...

2
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
03.07.2012, 00:08 #2
Цитата Сообщение от Santer.Net Посмотреть сообщение
Но хотел узнать, когда мы создаем динамически структуру, она помещается в стек или в кучу.
если создаем с помощью new - в куче, иначе - как все автоматические переменные - в стеке.
Цитата Сообщение от Santer.Net Посмотреть сообщение
...используют структуры,а не классы (даже когда код на с++).
наверное, неправильную статью прочитал. фактически в с++ структурі и классі - одно и то же, разница только в том, что используется по умолчанию.
1
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.07.2012, 11:00 #3
Цитата Сообщение от Santer.Net Посмотреть сообщение
И почему при реализации структур данных (типа связные списки) для описания узла используют структуры,а не классы (даже когда код на с++). Я бы хотел узнать по производительности какие будут различия.
По производительности, наверное, никаких. Вот, нашёл в инете, что и вам посоветую:
"...Теперь по существу вопроса. Дело в том, что язык С++ произошел от языка С. Язык С уже имел такой агрегированный тип данных, как структура. Когда родоначальник языка С++ Бъёрн Страуструп решил ввести классы в С, то взял за основу уже готовый тип данных - структуру. Единственное, что он сделал, это с помощью макрокоманд формально закрыл доступ к членам струкутры, и чтобы отличать свою конструкцию от базового типа, то есть структуры, на основе которой он строил классы, он назвал свою конструкцию классом. То есть, он внес новую парадигму, новый смысл, используя на уровне кода обычную структуру. То есть, концептуально, класс был другим понятием, в которое были вложены другие идеи, а конструктивно, это была обычная структура.
Затем, с развитием языка С++, стало (уже на уровне самого языка, а не на уровне макрокоманд) делаться различие между классом и структурой. То есть, в С++ появился новый тип данных - класс, который уже имел самостоятельную реализацию, а не был построен на основе структуры.
В С++ структуры имеют, по умолчанию, все члены открытыми, тогда как классы имеют, по умолчанию, все члены закрытыми. В С++ структуры сохранили те новшества, которые ввел Бъёрн, то есть конструкторы, деструкторы, методы и т.д.
Поэтому, в С++, вы можете использовать структуры как в старом стиле языка С, так и в новом стиле языка С++.
Поэтому, в стиле языка С++, структуры и классы взаимозаменяемы. Часто классы, которые имеют открытые члены данных, объявляют как структуры, чтобы лишний раз для этих членов не писать слово public (вы помните, что у классов по умолчанию члены данных имеют доступ private).
Вот и все различие!"
Добавлено через 15 минут
Можно здесь почитать: Вопрос. Чем отличаются структуры в С++ от классов в C++
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2012, 11:00
Привет! Вот еще темы с ответами:

Ошибка type qualifier 'std' must be a struct or class name - C++
а у меня на эту строку typedef std::string T_str; выдается ошибка type qualifier 'std' must be a struct or class name что делать? ...

Односвязный список: В чём разница между struct и class? - C++
После неудач работы с Vector, а так же отсутствия (Хотя, скорее всего, я просто плохо искал) хорошей русской документации по нему, решил...

Не могу исправить error C2228: left of '.isWorked' must have class/struct/union - C++
Добрый день. Есть два взаимодружественных класса.Методом одного, меняю поля другого. Вот код: class Alarm; //класс сигнализации ...

error C2228: left of '.add' must have class/struct/union type. в чем ошибка? - C++
Помогите понять в чем ошибка. Пасиб. #include <iostream.h> class book { private: char name_book; char name_avtor; ...


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

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

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