引用传递给方法

时间:2013-07-29 18:56:12

标签: c++ class reference

为什么有人会创建并调用一个将其自己的类作为输入参数的方法?如果我们想要分配/更改值,那么只做ob.a = x并不简单吗?优势和劣势是什么?

class Test
{
    public int a, b;

    public Test(int i, int j)
    {
        a = i;
        b = j;
    }

    public void Change(Test junk)
    {
        junk.a = junk.a + junk.b;
        junk.b = -junk.b;
    }
}

class Program
{
    static void Main(string[] args)
    {
        Test ob = new Test(15,20);
        Console.WriteLine("ob.a and ob.b before call: " + ob.a + " " + ob.b);
        ob.Change(ob);
        Console.WriteLine("ob.a and ob.b after call: " + ob.a + " " + ob.b);
        Console.ReadLine();
    }
}

2 个答案:

答案 0 :(得分:0)

您无法通过对象直接访问类的私有成员和受保护成员。只能通过对象访问公共变量。

因此,如果您想更改私有/受保护数据成员,则需要成员函数。

答案 1 :(得分:-1)

这完全是关于封装,它是面向对象编程的基础。