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

Указатель на пользовательский тип - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Распараллеливание программы http://www.cyberforum.ru/cpp/thread157205.html
Пишу брутер и встал вопрос о добавление многопоточности. Вот у меня есть функция: std::string wbfunc(std::string& hash) { std::string line; std::ifstream f("/home/hromjo/d"); while...
C++ Обработка кнопки У меян есть вот такая идея!я решил написать небольшую программку куда пользователь будет вводить свой майл и свой пароль потом при нажатии на клавишу данные будут сохраняться в файл,вот все что я... http://www.cyberforum.ru/cpp/thread157125.html
Нужен пример перехвата API функции на Detours!!! C++
В долгих поисках пришел к выводу использовать Detours для отлова пакетов. Где можно найти рабочий исходник отлова какой-нибудь функции (желательно Send/Recv)?
Программа в OpenCL C++
Братцы, сроки поджимают и нужно закончить программульку одну. В общем, делал-делал и пришёл я к тупику на данном этапе... не знаю, что и делать. Изначально программа должна была высчитывать с...
C++ Параллельное действие http://www.cyberforum.ru/cpp/thread156115.html
Как сделать действие параллельным? Если например сделать что бы слово всегда меняло цвет, то программа зациклится на этом, и другие действия выполнять не будет.
C++ Web-сервис на C++? предыстория такова: встретились,как-то,два совсем начинающих на С++.И как обычно завели "умный" спор по теме. Один начал доказывать другому(мне:)),что реализовать Web-сервис на С++ возможно и не... подробнее

Показать сообщение отдельно
darkAngel
Технофашист
215 / 198 / 4
Регистрация: 11.03.2009
Сообщений: 865
06.08.2010, 22:26  [ТС]
void ddd(long int **c)
Да как бы всё с этого и началось в начале темы )) что указатель на Tlong был в параметре. А CyBOSSeR посоветовал просто передавать.

А вообще, было бы проще сделать отдельный класс, в который инкапсулировать массив.
Ага, у же сам так подумал. Да и операции можно перегрузить. Ладно спасибо за помощь.

Добавлено через 3 часа 50 минут
Теперь проблема с перезагрузкой операций. Вот (код не дословный, только основные моменты, чтобы передать суть):

Вот у меня пусть есть класс:
C++
1
2
3
4
5
class Long
{
   long int lng[2][1000];  
   //конструкторы и методы, не пишу
};
Есть 3 объекта:
C++
1
Long a, b, c;
Вот я прегружаю присваивание:
C++
1
2
3
4
5
6
7
Long& operator = (Long &ch)
{
   for (int i=0; i<1000; i++) {
      lng[0][i] = ch.lng[0][i];
      lng[1][i] = ch.lng[1][i];
   }
   return *this;
}

Вот теперь внимание здесь - прегрузка сложения:
C++
1
2
3
4
5
6
Long& operator +(Long chB)
{
   Long *chR = new Long;          
   //....тут идёт сложение, что-то типа: chR->lng[0][0] = lng[0][0] + chB.lng[0][0]
   return *chR;
}

Ну и результат:
c = a + b;
Работает всё ровно, но у меня закрались сомнения. В теле перегрузки сложения я выделал память под новый объект, где хранился результат и возвращал ссылку на него. После шло присваивание, а точнее копирование в переменную C данных по ссылке, полученной из сложения.
Дак получается, что память, куда указывает ссылка, остаётся занятой и превращается в мусор. Как мне быть? очищать её в теле перегрузки присваивания в конце? Тогда получается, если я просто буду присваивать c = b, то будет удаляться нужный объект b.
Надеюсь понятно выразил мысли
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru