powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / как передать в ф-ию?
2 сообщений из 27, страница 2 из 2
как передать в ф-ию?
    #33728587
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
class Class1 *pC - это указатель на класс Class1

А в rez(Class1 & cl) cl - это ссылка.

Ссылка и указатель, как говорят в Одессе, это две большие разницы.

В первом случае ты обращался cl-> или (*cl). к каким-нибудь методам, членам и т.д.

Во втором случае ты обращаешься как только через точку к этим же методам.

При этом в первом случае, чтобы присвоить cl какое либо значение (значение!, а не адрес), то ты должен написать сначала его разыменовать вот так *cl, а потом присваивать. К примеру:

rez(Class1 *cl)
{
Class1 Val;

*cl = Val;
}

Кстати в этом случае при вызове функции надо писать так:

Class1 Ext;
rez(&Ext);//Передаем адрес

Если же используешь сразу указатель на объект в динамической памяти, то так:

Class1 *Ext = new Class1;
rez(Ext);//Все так же передаем адрес


Во втором случае, при использовании ссылки, разыменовывание не требуется и можно писать так:

rez(Class1 & cl)
{
Class1 Val;
cl = Val;
}


Вызов же данной функции на мой взгляд легче:

Class1 Ext;
rez(Ext);//Передаем ссылку на значение

Если же у тебя объект размещен в динамической памяти, и Ext является указателем на него, то вызываем данную функцию так:

Class1 *Ext = new Class1;
rez(*Ext);//Передаем сам объект разыменовав указатель, но как ссылку.
...
Рейтинг: 0 / 0
как передать в ф-ию?
    #33728807
1\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1\\
Гость
Большое спасибо! я понял
...
Рейтинг: 0 / 0
2 сообщений из 27, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / как передать в ф-ию?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]