passing object reference to the method

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • puzzlecracker

    passing object reference to the method

    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
  • Pete Becker

    #2
    Re: passing object reference to the method

    On 2008-09-30 11:51:35 -0400, puzzlecracker <ironsel2000@gm ail.comsaid:
    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)

    Comment

    • Obnoxious User

      #3
      Re: passing object reference to the method

      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.

      Comment

      • puzzlecracker

        #4
        Re: passing object reference to the method

        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.

        Comment

        Working...