[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.c++

passing object reference to the method

puzzlecracker

9/30/2008 3:52:00 PM

Say I pass an object of a class (reference value I suppose) to a
method, and I want to pass it by reference. Do I need to preappend
it with ref.

public interface IFoo{}

public class Foo:IFoo{

}

void FromHere()
{

Foo f=new Foo();
Here(ref f);

}

void Here(ref IFoo f )
{
//do something with f
}

Is ref redundant or error-prone. In my scenerio I have a lot of
overload for Here-like function,
and compiler screams that it cannot convert IFoo to char (latter
beeing void Here(ref char c) )


Thanks
3 Answers

Pete Becker

9/30/2008 3:56:00 PM

0

On 2008-09-30 11:51:35 -0400, puzzlecracker <ironsel2000@gmail.com> said:

> Say I pass an object of a class (reference value I suppose) to a
> method, and I want to pass it by reference. Do I need to preappend
> it with ref.
>
> public interface IFoo{}
>
> public class Foo:IFoo{
>
> }
>
> void FromHere()
> {
>
> Foo f=new Foo();
> Here(ref f);
>
> }
>
> void Here(ref IFoo f )
> {
> //do something with f
> }
>
> Is ref redundant or error-prone. In my scenerio I have a lot of
> overload for Here-like function,
> and compiler screams that it cannot convert IFoo to char (latter
> beeing void Here(ref char c) )
>

This usage of ref is not part of standard C++. If a function takes an
argument by reference that argument is marked as a reference like this:

void Here(IFoo& f)

and it's called with the object:

Foo f;
Here(f);

Note that this is different from what the above code is doing, since
Foo f= new Foo() creates a pointer. I have no idea what the meaning of
those 'ref' decorations is.

--
Pete
Roundhouse Consulting, Ltd. (www.versatilecoding.com) Author of "The
Standard C++ Library Extensions: a Tutorial and Reference
(www.petebecker.com/tr1book)

Obnoxious User

9/30/2008 3:58:00 PM

0

On Tue, 30 Sep 2008 08:51:35 -0700, puzzlecracker wrote:

> Say I pass an object of a class (reference value I suppose) to a method,
> and I want to pass it by reference. Do I need to preappend it with
> ref.
>
> public interface IFoo{}
>
> public class Foo:IFoo{
>
> }
>
> void FromHere()
> {
>
> Foo f=new Foo();
> Here(ref f);
>
> }
>
> void Here(ref IFoo f )
> {
> //do something with f
> }
>
> Is ref redundant or error-prone. In my scenerio I have a lot of
> overload for Here-like function,
> and compiler screams that it cannot convert IFoo to char (latter
> beeing void Here(ref char c) )
>

Are your sure this is C++? Most likely CLI/C++ or some
other Microsoft managed version.

--
OU
Remember 18th of June 2008, Democracy died that afternoon.
http://frapedia.se/wiki/Information_...

puzzlecracker

9/30/2008 5:29:00 PM

0

On Sep 30, 11:58 am, Obnoxious User <O...@127.0.0.1> wrote:
> On Tue, 30 Sep 2008 08:51:35 -0700, puzzlecracker wrote:
> > Say I pass an object of a class (reference value I suppose) to a method,
> > and  I want to pass it by reference. Do  I need to preappend it with
> > ref.
>
> > public interface IFoo{}
>
> > public class Foo:IFoo{
>
> > }
>
> > void FromHere()
> > {
>
> >      Foo f=new Foo();
> >      Here(ref f);
>
> > }
>
> > void Here(ref IFoo f )
> > {
> >      //do something with f
> > }
>
> > Is ref redundant or error-prone.  In my scenerio I have a lot of
> > overload for Here-like function,
> >  and compiler screams that it cannot convert IFoo to char (latter
> > beeing void Here(ref char c) )
>
> Are your sure this is C++? Most likely CLI/C++ or some
> other Microsoft managed version.
>
> --
> OU
> Remember 18th of June 2008, Democracy died that afternoon.http://frapedia..se/wiki/Information_in_English

Guys, It's csharp. I accidentally post this question here. It's now
reposted to the appropriate group.