Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
hastal
1 / 1 / 1
Регистрация: 16.01.2016
Сообщений: 97
#1

Как создать копию объекта на который указывает указатель - C++

28.03.2016, 14:15. Просмотров 263. Ответов 3
Метки нет (Все метки)

У меня есть указатель класс Student, который хранит информацию о студентах(имя, фамилию, телефон) в строках в стиле Си, то есть private члены - указатели на char, в классе реализовано выделение/удаление памяти и т.д. Есть ещё один класс AcademicGroup, который хранит количество студентов и указатель на указатель на Student(одномерный массив указателей). В классе AcademicGroup есть метод добавления студентов и вот в чем вопрос, если у меня уже есть группа из 5 студентов и мне надо добавить ещё 7, то для начала мне надо создать новую группу из 12 людей и добавить туда старых 5 человек, а потом новых 7 человек и затем удалить указатель на старую группу, чтоб не было утечки памяти. Как мне это реализовать, мой вариант ведь работает не верно так?
C++
1
2
3
4
5
6
Student **temp = new Student*[count + q];
        for (int i = 0;i < count;i++)
        {
            temp[i] = new Student;
            temp[i] = pSt[i];
        }
pSt - мой старый указатель на группу.
count - старое количество человек.
q - количество добавляемых.
temp - новое хранилище.

Мне надо скопировать все в темп, затем присвоить указателю pSt новое содержимое temp и удалить старый pSt. Как это реализовать без утечки памяти.
Эта строка:
C++
1
temp[i] = pSt[i];
ведь попросту копирует адреса, как мне сделать все это не перегружая оператор= и прочее для класса Student(на этот момент мы не учили это).
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2016, 14:15
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как создать копию объекта на который указывает указатель (C++):

Как изменить тип объекта, на который указывает указатель?
Есть абстрактный базовый класс и два производных: class Base { protected:...

Как создать копию объекта, зная его указатель?
Здравствуйте, существует следующая проблема. В своей программе я рисую график...

как создать копию объекта, на который ссылается итератор?
Есть шаблонная фукнция, в которую передается итератор с произвольным доступом...

Создать копию объекта производного класса зная указатель на базовый
Добрый день! Вопрос в следующем... Возможно ли создать копию объекта...

Как вывести адресс на который указывает указатель типа char*.
Эта программа : #include &lt;iostream&gt; using namespace std; int main() {...

Узнать номер элемента массива на который указывает указатель
Может вопрос глупый но тока что об этом задумался! Можно ли узнать номер...

3
zss
Модератор
Эксперт С++
6956 / 6518 / 4138
Регистрация: 18.12.2011
Сообщений: 17,208
Завершенные тесты: 1
28.03.2016, 14:25 #2
Перегрузите operator= в классе Student, а заодно проверьте наличие копикоструктора и деструктора
0
hastal
1 / 1 / 1
Регистрация: 16.01.2016
Сообщений: 97
28.03.2016, 14:34  [ТС] #3
Цитата Сообщение от zss Посмотреть сообщение
Перегрузите operator= в классе Student, а заодно проверьте наличие копикоструктора и деструктора
Иначе никак?
0
Nosey
1349 / 400 / 144
Регистрация: 22.10.2014
Сообщений: 863
Завершенные тесты: 2
28.03.2016, 14:38 #4
Лучший ответ Сообщение было отмечено rikimaru2013 как решение

Решение

Цитата Сообщение от hastal Посмотреть сообщение
Иначе никак?
Вот так даже лучше будет : https://ru.wikipedia.org/wiki/%D0%9F...D0%B8%D1%8F%29
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2016, 14:38
Привет! Вот еще темы с решениями:

Создать указатель, который сможет указывать объект любого типа.
Привет всем, я в програмировании ни чего не смыслю поэтому обращаюсь к вам,...

Создать массив или вектор того типа, на который ссылается указатель
Доброго времени суток. Есть следующая функция template &lt;typename...

Создать абстрактный тип данных (структура) — вектор, который имеет указатель на int и число элементов
Создать абстрактный тип данных (структура) - вектор, который имеет указатель на...

Создать абстрактный тип данных (структура) - вектор, который имеет указатель на short и число элементов
Создать абстрактный тип данных (структура) - вектор, который имеет указатель на...


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

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

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