Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: passing object reference to the method

1 view
Skip to first unread message
Message has been deleted

Pete Becker

unread,
Sep 30, 2008, 11:55:53 AM9/30/08
to
On 2008-09-30 11:51:35 -0400, puzzlecracker <irons...@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

unread,
Sep 30, 2008, 11:58:11 AM9/30/08
to
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

puzzlecracker

unread,
Sep 30, 2008, 1:29:24 PM9/30/08
to

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

0 new messages