|
|
|
как передать в ф-ию?
|
|||
|---|---|---|---|
|
#18+
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);//Передаем сам объект разыменовав указатель, но как ссылку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 22:14 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2031289]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
192ms |
get topic data: |
16ms |
get first new msg: |
8ms |
get forum data: |
4ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 514ms |

| 0 / 0 |
