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

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
insideone
Модератор
Автор FAQ
3643 / 922 / 51
Регистрация: 10.01.2010
Сообщений: 2,480
#1

Выделение памяти - C++

01.02.2010, 01:44. Просмотров 1635. Ответов 20
Метки нет (Все метки)

C++
1
MyClass& DXI =* new MyClass();
Это корректный код для выделения памяти, чтобы к переменной можно было обращаться не по ссылке?
C++
1
delete &DXI;
Это удалит выделенную память?

Кроме того... если
C++
1
MyClass* pDXI;
А потом в теле программы где либо:
C++
1
pDXI = new MyClass();
То можно ли в деструкторе класса написать так
C++
1
2
3
MyClass::~MyClass(){
   delete this;
}
При выходе из программы память же должна освободиться?

Я так же запутался в этом: Если деструктор вызывается при delete &obj, то что будет если я в нем же напишу delete this?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2010, 01:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выделение памяти (C++):

Выделение памяти с помощью new под объекты без вызова их конструкторов - C++
здравствуйте, корректен ли следующий код: myClass* pttr = static_cast<myClass*>(::operator new(5 * sizeof(myClass))); for (int i = 0; i...

как использовать динамическое выделение памяти для новых массивов фиксированного размера? - C++
как использовать динамическое выделение памяти для новых массивов фиксированного размера?

C++ MPI выделение потоков - C++
Здравствуйте, я к вам с немного нубским вопросом. Написал вот такой код: #include <iostream> #include <vector> #include <ctime> ...

Выделение объектов в рамку Opencv - C++
Здравствуйте! В моей программе сохраняется фон, затем в режиме реального времени фиксируются пиксели, отличные от ранее сохраненного фона....

Выделение памяти (CodeGear RAD Studio 2009 - C++ builder). Выделение памяти - консоль vs SDIApp - C++ Builder
Есть определенный класс - длинная арифметика. Не идеальный - хранение данных исполнено в виде динамического массива типа short int, каждая...

Выделение памяти - C++ Builder
Пишу программу в C++ Borland Builder 6. Если пытаюсь выделить сколь угодно много памяти с помощью new (да и с malloc тоже самое), то новый...

20
insideone
Модератор
Автор FAQ
3643 / 922 / 51
Регистрация: 10.01.2010
Сообщений: 2,480
02.02.2010, 23:56  [ТС] #16
А как тогда получать доступ внутри методов различных классов?
0
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
03.02.2010, 10:15 #17
Цитата Сообщение от insideone Посмотреть сообщение
А как тогда получать доступ внутри методов различных классов?
найди опен-сорс проект где директХ применяют. и посмотри, как у них всё реализовано.
0
Patch
2277 / 492 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
03.02.2010, 11:19 #18
Цитата Сообщение от CheshireCat Посмотреть сообщение
"Глобальные переменные - всегда потенциальный источник проблем. От них лучше избавляться.
В пользу чего?) "
В пользу мозгов.
Программы можно строить по-разному.
Но мне за 15 лет еще не попадалось случая, когда бы глобальные переменные были НЕОБХОДИМЫМИ.
0
insideone
Модератор
Автор FAQ
3643 / 922 / 51
Регистрация: 10.01.2010
Сообщений: 2,480
03.02.2010, 13:09  [ТС] #19
найди опен-сорс проект где директХ применяют. и посмотри, как у них всё реализовано.
пожалуй так и сделаю, попотрошу HGE...
Но мне за 15 лет еще не попадалось случая, когда бы глобальные переменные были НЕОБХОДИМЫМИ.
Пол года опыта C++, "мозги" ещё не пришли. Я не вижу тут ничего очевидного чтобы можно было оскорблять(
0
Patch
2277 / 492 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
03.02.2010, 13:15 #20
Цитата Сообщение от insideone Посмотреть сообщение
Пол года опыта C++, "мозги" ещё не пришли. Я не вижу тут ничего очевидного чтобы можно было оскорблять(
Прошу прощения, я никого не хотел оскорбить.
Ситуация с переменными и стилями программирования становится понятной, после изучения основ бэйсика и паскаля.
Просто принципиально разные подходы.
Язык С - предполагает глобальные переменные, к которым можно обращаться отовсюду, а С++ - уже нет.
А обращение объектов друг к другу можно реализовать несколькими способами, например, передачей ссылок.
1
insideone
Модератор
Автор FAQ
3643 / 922 / 51
Регистрация: 10.01.2010
Сообщений: 2,480
03.02.2010, 17:45  [ТС] #21
2 Patch Ну бейсик слабо богу меня не затронул, а вот паскаль был) Кодил и на Lua что меня немного изнежило - ведь язык очень не требовательный и свободный. Я впринципе то понимаю что проект полностью мой и его и смотреть то не будет, да и все прекрасно работает с глобальными... но в глубине души стал понимать что, что-то не так когда в "модели" объекта (класс) уже используется другой объект... поэтому и стали появляться такие вопросы, т.к. хочется совершенствоваться и писать более менее грамотный код. Извиняюсь что сделал выпад просто так тяжело когда не знаешь и пытаешься а найти не можешь.

В прочем тема себя исчерпала, буду избавляться от глобальных переменных и их использования в методах в пользу членов-ссылок или посмотрю другие варианты по обстоятельствам. Спасибо всем кто отвечал =)
0
03.02.2010, 17:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2010, 17:45
Привет! Вот еще темы с ответами:

Выделение динамической памяти - C++ Builder
Задан граф в виде матрицы смежности вершин. Найти число компонент связности в этом графе. Программа сделанная,но надо выделить...

Динамическое выделение памяти - C++ Builder
В одном источнике прочитал следующее Т.е. блок выделяемой памяти должен быть кратен параграфу? Проверяю это на следующем коде ...

Правильное динамическое выделение памяти. - C++ Builder
помогите пожалуйста, спасете человек 6... Преподаватель спросил как сделать программу без этого участка __fastcall...

Std:: vector<Structure>, выделение памяти - C++ Builder
Уважаемые, программисты, помогите новичку исправить ошибку, при создании вектора структур. Подскажите, пожалуйста, где я неправильно...


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

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

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