![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 08.11.2010
Сообщений: 593
|
![]()
Добрый день, как правильно нужно передавать указатель на объект, т.е. к примеру я хочу подключить объект на одной форме, а потом использовать этот объект на других формах через первую) спасибо заранее)
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 02.10.2009
Сообщений: 104
|
![]()
например указатель на массив так передается:
вот как выглядит функция, которая принисает: Код:
Код:
Последний раз редактировалось blackbanny; 06.01.2011 в 12:32. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 08.11.2010
Сообщений: 593
|
![]()
Вот смотри например, у меня имеется отдельный cpp файл, в котором например описаны несколько классов. Потом я создаю новый проект, и не сколько форм, подключаю на первой форме мой срр файл, и вызываю методы объекта указатель на который создал, например вот так CBird *bird=new CBird();
а потом мне на второй форме нужно использовать тот же самый CBird но уже другие методы его, дак как мне с первой формы передать указатель на объект на вторую, чтоб не возникали ошибки записи не в тот адрес,либо записи в тот адрес, который предназначен для чтения! Заранее спасибо! |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 21.12.2010
Сообщений: 199
|
![]()
Чето я вобще ниче не понял.
Если тебе нужно юзать классы из твоего .cpp то ты его разделяешь на реализацию методов классов (в самом .cpp) и объявление самого класса с прототипами методов в нем в .h файле. далее этот файл подключаешь куда надо и либо там где его юзаешь у тебя в томже проекте должен компилироватся этот .cpp либо линкер должен прилинковать .lib от этого .cpp |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 02.12.2010
Сообщений: 81
|
![]() Код:
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 08.11.2010
Сообщений: 593
|
![]()
pacniwassano смотри что я делал, я подключал в Unit1.cpp свой модуль например его назову modul.cpp потом в этом Unit1.cpp создавал указатель на объект т.е. например:CBird *bird=new CBird();
Потом я создавал вторую форму, на ней делал следующее #include "Unit1.cpp" и пытаюсь вызвать метод объекта CBird но у меня выскакивает ошибка следующего содержания: Project Project1.exe raised exception class EAccessViolation with mewssage 'Access violation at address 0040955B in module 'Project1.exe'.Write of address 00000024'.Process stopped.Use Step or Run to continue. А вот как ее избежать я не знаю( |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 06.01.2011
Сообщений: 11
|
![]()
Не совсем понимаю суть вашей проблемы. Вы можете создать .h файл котором объявите переменную к примеру CBird *g_bird. Далее вы подключаете это файл к вашему Unit1.cpp и в нем инициализируете переменную, к примеру g_bird=new CBird();
Потом в вашей 2 форме вы подключаете этот же h файл и используете єту переменную g_bird->... Главное что бы инициализация переменной была до ее использования. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 08.11.2010
Сообщений: 593
|
![]()
Flyasd1 Спасибо, кажется вы раскрыли мне глаза на проблему)
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача указателя на процедуру из другого модуля | Alex Cones | Общие вопросы Delphi | 0 | 27.06.2010 15:21 |
Передача указателя по цепочке (Си) | mutabor | Общие вопросы C/C++ | 3 | 29.05.2010 16:29 |
Передача указателя из Си++ в dll на delphi | VladimirFF | Общие вопросы C/C++ | 0 | 22.02.2010 19:56 |
Передача указателя на массив в функцию | loser | Общие вопросы C/C++ | 2 | 19.02.2010 19:41 |
передача указателя в функцию | arturka | Помощь студентам | 3 | 06.07.2008 00:25 |